appointment.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. define({
  2. template: `
  3. <div id="appointment">
  4. <el-form label-width="15%" >
  5. <div id="vue_head">
  6. <div class="vue-main-title">
  7. <div class="vue-main-title-left"></div>
  8. <div class="vue-main-title-content">预约{{lang_set.project}}</div>
  9. </div>
  10. <div class="vue-main-form">
  11. <div style="margin:0 auto;width:80%;">
  12. <div v-for="(item,index) in bookingItems" :key="index" class="item-card">
  13. <i class="el-icon-close" @click="delItem(index)"></i>
  14. <el-form-item :label="'选择'+lang_set.project" label-width="150px" required style="width:60%">
  15. <el-select v-model="item.project_id" filterable placeholder="请选择" style="width:100%">
  16. <el-option
  17. v-for="item in projects"
  18. :key="item.id"
  19. :label="item.title"
  20. :value="item.id"
  21. >
  22. </el-option>
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item label="预约次数" label-width="150px" required style="width:60%">
  26. <el-input v-model="item.service_count"></el-input>
  27. </el-form-item>
  28. <el-form-item label="门店分润 (元)" label-width="150px" style="width:60%">
  29. <el-input v-model="item.price"></el-input>
  30. </el-form-item>
  31. <el-form-item :label="lang_set.worker+'分润 (元)'" label-width="150px" style="width:60%">
  32. <el-input v-model="item.worker_commission"></el-input>
  33. </el-form-item>
  34. <el-form-item label="招商员分润 (元)" label-width="150px" style="width:60%">
  35. <el-input v-model="item.merchant_staff_commission"></el-input>
  36. </el-form-item>
  37. <div v-if="area_set">
  38. <el-form-item label="区域代理分红" prop="area_set" label-width="150px" style="width:60%">
  39. <el-radio v-model="item.area_set" :label="0" >关闭</el-radio>
  40. <el-radio v-model="item.area_set" :label="1" >开启</el-radio>
  41. <div class="form-item_tips">开启后预约项目完成给被预约门店所在区域的区域代理进行分红<br>选择固定金额:分红金额=区域代理分润金额/预约次数*区域代理分红比例<br>选择订单实付金额:分红金额=订单实付金额/预约次数*区域代理分红比例</div>
  42. </el-form-item>
  43. <div v-if="item.area_set == 1 && area_basic == 1">
  44. <el-form-item label="省 (元)" label-width="150px" style="width:60%">
  45. <el-input v-model="item.province"></el-input>
  46. </el-form-item>
  47. <el-form-item label="市 (元)" label-width="150px" style="width:60%">
  48. <el-input v-model="item.city"></el-input>
  49. </el-form-item>
  50. <el-form-item label="区/县 (元)" label-width="150px" style="width:60%">
  51. <el-input v-model="item.district"></el-input>
  52. </el-form-item>
  53. <el-form-item label="乡镇/街道 (元)" label-width="150px" style="width:60%">
  54. <el-input v-model="item.street"></el-input>
  55. </el-form-item>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <el-form-item label=" " style="width:60%">
  61. <el-button type="primary" plain icon="el-icon-plus" @click="addItems">添加{{lang_set.project}}</el-button>
  62. </el-form-item>
  63. </div>
  64. </div>
  65. </el-form>
  66. </div>
  67. `,
  68. style: `
  69. .item-card{
  70. border: 1px solid #b4bccc;
  71. padding-top: 20px;
  72. margin-bottom: 20px;
  73. }
  74. #appointment .el-icon-close{
  75. margin-left: 20px;
  76. font-weight: bold;
  77. font-size: 20px;
  78. color:#EE3939;
  79. }
  80. `,
  81. props: {
  82. form: {
  83. default() {
  84. return {};
  85. },
  86. },
  87. },
  88. data() {
  89. return {
  90. lang_set:{},
  91. area_set:'',
  92. area_basic:'',
  93. projects: [],
  94. bookingItems:[{
  95. id:"",
  96. project_id:"",
  97. service_count:"",
  98. price:"",
  99. worker_commission:"",
  100. merchant_staff_commission:"",
  101. area_set:0,
  102. province:"",
  103. city:"",
  104. district:"",
  105. street:"",
  106. }]
  107. };
  108. },
  109. created() {
  110. this.lang_set = this.form.lang_set;
  111. this.area_set = this.form.area_set;
  112. this.area_basic = this.form.area_basic;
  113. if(JSON.stringify(this.form.item) !== '[]') {
  114. this.bookingItems = this.form.item;
  115. }
  116. if(JSON.stringify(this.form.projects) !== '[]') {
  117. this.projects = this.form.projects;
  118. }
  119. },
  120. methods: {
  121. addItems(){
  122. this.bookingItems.push({
  123. id:"",
  124. project_id: "",
  125. service_count: "",
  126. price: "",
  127. worker_commission: "",
  128. area_set: 0,
  129. province: "",
  130. city: "",
  131. district: "",
  132. street: "",
  133. merchant_staff_commission: "",
  134. })
  135. },
  136. delItem(index){
  137. this.bookingItems.splice(index,1)
  138. },
  139. validate() {
  140. let error_status = false;
  141. this.bookingItems.forEach(item => {
  142. if (!item.project_id ) {
  143. this.$message({message: '请选择'+ this.lang_set.project, type: 'warning'});
  144. error_status = true;
  145. return false;
  146. }
  147. if (!item.service_count) {
  148. this.$message({message: '请输入预约次数', type: 'warning'});
  149. error_status = true;
  150. return false;
  151. }
  152. });
  153. if (error_status) {
  154. return false;
  155. }
  156. return this.bookingItems;
  157. },
  158. },
  159. });