edit.php 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-dialog-select');
  4. ComponentHelper::loadComponentView('com-select-cat');
  5. ComponentHelper::loadComponentView('com-dialog-select-store');
  6. ?>
  7. <div id="app" v-cloak>
  8. <el-card class="box-card" v-loading="cardLoading" shadow="never" style="border:0;min-width: 1250px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  9. <div slot="header">
  10. <el-breadcrumb separator="/">
  11. <el-breadcrumb-item>
  12. <span style="color: #409EFF;cursor: pointer" @click="$navigate({r:'agent/level/index'})">
  13. 经销商等级
  14. </span>
  15. </el-breadcrumb-item>
  16. <el-breadcrumb-item>编辑经销商等级</el-breadcrumb-item>
  17. </el-breadcrumb>
  18. </div>
  19. <div class="form-body">
  20. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm">
  21. <el-row>
  22. <el-col :span="24">
  23. <el-form-item label="经销商等级权重" prop="level" :label-width="formLabelWidth">
  24. <el-select style="width: 100%" v-model="ruleForm.level" placeholder="请选择">
  25. <el-option v-for="item in weights" :key="item.level" :label="item.name" :value="item.level" :disabled="item.disabled && item.level!=origin_level">
  26. </el-option>
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item label="经销商等级名称" prop="name" :label-width="formLabelWidth">
  30. <el-input v-model="ruleForm.name" placeholder="请输入经销商等级名称"></el-input>
  31. </el-form-item>
  32. <el-form-item label="渠道奖佣金类型" prop="is_percent_team" :label-width="formLabelWidth">
  33. <el-radio-group v-model="ruleForm.commission.is_percent_team">
  34. <el-radio :label="0">百分比</el-radio>
  35. <el-radio :label="1">固定金额</el-radio>
  36. </el-radio-group>
  37. </el-form-item>
  38. <el-form-item label="渠道奖励" :label-width="formLabelWidth">
  39. <el-input v-model.number="ruleForm.commission.agent_team_prize" type="number">
  40. <template slot="append" v-if="ruleForm.commission.is_percent_team == 0">%</template>
  41. <template slot="append" v-if="ruleForm.commission.is_percent_team == 1">元</template>
  42. </el-input>
  43. </el-form-item>
  44. <el-form-item label="被越级的奖励" :label-width="formLabelWidth">
  45. <el-input v-model.number="ruleForm.commission.agent_over_prize" type="number">
  46. <template slot="append">%</template>
  47. </el-input>
  48. </el-form-item>
  49. <template v-if="is_show_additional_score == 1">
  50. <el-form-item label="渠道奖额外积分类型" prop="is_percent_team" :label-width="formLabelWidth">
  51. <el-radio-group v-model="ruleForm.additional_score.is_percent_team">
  52. <el-radio :label="0">百分比</el-radio>
  53. <el-radio :label="1">固定积分</el-radio>
  54. </el-radio-group>
  55. </el-form-item>
  56. <el-form-item label="渠道额外积分奖励" :label-width="formLabelWidth">
  57. <el-input v-model.number="ruleForm.additional_score.agent_team_prize" type="number">
  58. <template slot="append" v-if="!ruleForm.additional_score.is_percent_team">%</template>
  59. <template slot="append" v-if="ruleForm.additional_score.is_percent_team == 1">积分</template>
  60. </el-input>
  61. </el-form-item>
  62. <el-form-item label="被越级的额外积分奖励" :label-width="formLabelWidth">
  63. <el-input v-model.number="ruleForm.additional_score.agent_over_prize" type="number">
  64. <template slot="append" v-if="!ruleForm.additional_score.is_percent_team">%</template>
  65. <template slot="append" v-if="ruleForm.additional_score.is_percent_team == 1">积分</template>
  66. </el-input>
  67. </el-form-item>
  68. </template>
  69. <el-form-item label="渠道奖积分类型" prop="is_percent_team" :label-width="formLabelWidth">
  70. <el-radio-group v-model="ruleForm.score.is_percent_team">
  71. <el-radio :label="0">百分比</el-radio>
  72. <el-radio :label="1">固定积分</el-radio>
  73. </el-radio-group>
  74. </el-form-item>
  75. <el-form-item label="渠道积分奖励" :label-width="formLabelWidth">
  76. <el-input v-model.number="ruleForm.score.agent_team_prize" type="number">
  77. <template slot="append" v-if="ruleForm.score.is_percent_team == 0">%</template>
  78. <template slot="append" v-if="ruleForm.score.is_percent_team == 1">积分</template>
  79. </el-input>
  80. </el-form-item>
  81. <el-form-item label="被越级的积分奖励" :label-width="formLabelWidth">
  82. <el-input v-model.number="ruleForm.score.agent_over_prize" type="number">
  83. <template slot="append">%</template>
  84. </el-input>
  85. </el-form-item>
  86. <template>
  87. <el-form-item label="渠道奖数字币类型" prop="is_percent_team" :label-width="formLabelWidth">
  88. <el-radio-group v-model="ruleForm.digital.is_percent_team">
  89. <el-radio :label="0">百分比</el-radio>
  90. <el-radio :label="1">固定数字币</el-radio>
  91. </el-radio-group>
  92. </el-form-item>
  93. <el-form-item label="渠道奖数字币奖励" :label-width="formLabelWidth">
  94. <el-input v-model.number="ruleForm.digital.agent_team_prize" type="number" onInput="value=toNumber(value,2)">
  95. <template slot="append" v-if="ruleForm.digital.is_percent_team == 0">%</template>
  96. <template slot="append" v-if="ruleForm.digital.is_percent_team == 1">数字币</template>
  97. </el-input>
  98. </el-form-item>
  99. <el-form-item label="被越级的数字币奖励" :label-width="formLabelWidth">
  100. <el-input v-model.number="ruleForm.digital.agent_over_prize" type="number" onInput="value=toNumber(value,2)">
  101. <template slot="append">%</template>
  102. </el-input>
  103. </el-form-item>
  104. </template>
  105. <el-form-item label="平级奖佣金类型" prop="is_percent_equal" :label-width="formLabelWidth">
  106. <el-radio-group v-model="ruleForm.commission.is_percent_equal">
  107. <el-radio :label="0">百分比</el-radio>
  108. <el-radio :label="1">固定金额</el-radio>
  109. </el-radio-group>
  110. </el-form-item>
  111. <el-form-item label="平级奖励" :label-width="formLabelWidth">
  112. <el-input v-model.number="ruleForm.commission.agent_equal_prize" type="number">
  113. <template slot="append" v-if="ruleForm.commission.is_percent_equal == 0">%</template>
  114. <template slot="append" v-if="ruleForm.commission.is_percent_equal == 1">元</template>
  115. </el-input>
  116. </el-form-item>
  117. <el-form-item label="独立平级奖励" prop="is_alone_agent_equal_prize" :label-width="formLabelWidth">
  118. <el-switch v-model="ruleForm.commission.is_alone_agent_equal_prize" :active-value="1" :inactive-value="0">
  119. </el-switch>
  120. </el-form-item>
  121. <div v-if="ruleForm.commission.is_alone_agent_equal_prize">
  122. <el-form-item v-for="(item,index) in ruleForm.commission.alone_agent_equal_prize_info" :label-width="formLabelWidth">
  123. <label slot="label">
  124. {{'第'+item.deep+'层平级奖励'}}
  125. </label>
  126. <el-input v-model.number="item.prize" type="number">
  127. <template slot="append" v-if="ruleForm.commission.is_percent_equal == 0">%</template>
  128. <template slot="append" v-if="ruleForm.commission.is_percent_equal == 1">元</template>
  129. </el-input>
  130. </el-form-item>
  131. </div>
  132. <el-form-item label="平级奖积分类型" prop="is_percent_equal" :label-width="formLabelWidth">
  133. <el-radio-group v-model="ruleForm.score.is_percent_equal">
  134. <el-radio :label="0">百分比</el-radio>
  135. <el-radio :label="1">固定积分</el-radio>
  136. </el-radio-group>
  137. </el-form-item>
  138. <el-form-item label="平级积分奖励" :label-width="formLabelWidth">
  139. <el-input v-model.number="ruleForm.score.agent_equal_prize" type="number">
  140. <template slot="append" v-if="ruleForm.score.is_percent_equal == 0">%</template>
  141. <template slot="append" v-if="ruleForm.score.is_percent_equal == 1">积分</template>
  142. </el-input>
  143. </el-form-item>
  144. <el-form-item label="独立平级积分奖励" prop="is_alone_agent_equal_prize" :label-width="formLabelWidth">
  145. <el-switch v-model="ruleForm.score.is_alone_agent_equal_prize" :active-value="1" :inactive-value="0">
  146. </el-switch>
  147. </el-form-item>
  148. <div v-if="ruleForm.score.is_alone_agent_equal_prize">
  149. <el-form-item v-for="(item,index) in ruleForm.score.alone_agent_equal_prize_info" :label-width="formLabelWidth">
  150. <label slot="label">
  151. {{'第'+item.deep+'层平级积分奖励'}}
  152. </label>
  153. <el-input v-model.number="item.prize" type="number">
  154. <template slot="append" v-if="ruleForm.score.is_percent_equal == 0">%</template>
  155. <template slot="append" v-if="ruleForm.score.is_percent_equal == 1">元</template>
  156. </el-input>
  157. </el-form-item>
  158. </div>
  159. <template>
  160. <el-form-item label="平级奖数字币类型" prop="is_percent_equal" :label-width="formLabelWidth">
  161. <el-radio-group v-model="ruleForm.digital.is_percent_equal">
  162. <el-radio :label="0">百分比</el-radio>
  163. <el-radio :label="1">固定数字币</el-radio>
  164. </el-radio-group>
  165. </el-form-item>
  166. <el-form-item label="平级数字币奖励" :label-width="formLabelWidth">
  167. <el-input v-model.number="ruleForm.digital.agent_equal_prize" type="number" onInput="value=toNumber(value,2)">
  168. <template slot="append" v-if="ruleForm.digital.is_percent_equal == 0">%</template>
  169. <template slot="append" v-if="ruleForm.digital.is_percent_equal == 1">数字币</template>
  170. </el-input>
  171. </el-form-item>
  172. </template>
  173. <template v-if="is_show_additional_score == 1">
  174. <el-form-item label="平级额外积分类型" prop="is_percent_equal" :label-width="formLabelWidth">
  175. <el-radio-group v-model="ruleForm.additional_score.is_percent_equal">
  176. <el-radio :label="0">百分比</el-radio>
  177. <el-radio :label="1">固定积分</el-radio>
  178. </el-radio-group>
  179. </el-form-item>
  180. <el-form-item label="平级额外积分奖励" :label-width="formLabelWidth">
  181. <el-input v-model.number="ruleForm.additional_score.agent_equal_prize" type="number" onInput="value=toNumber(value,2)">
  182. <template slot="append" v-if="!ruleForm.additional_score.is_percent_equal">%</template>
  183. <template slot="append" v-if="ruleForm.additional_score.is_percent_equal == 1">积分</template>
  184. </el-input>
  185. </el-form-item>
  186. <el-form-item label="独立平级额外积分奖励" prop="is_alone_agent_equal_prize" :label-width="formLabelWidth">
  187. <el-switch v-model="ruleForm.additional_score.is_alone_agent_equal_prize" :active-value="1" :inactive-value="0">
  188. </el-switch>
  189. </el-form-item>
  190. <div v-if="ruleForm.additional_score.is_alone_agent_equal_prize">
  191. <el-form-item v-for="(item,index) in ruleForm.additional_score.alone_agent_equal_prize_info" :label-width="formLabelWidth">
  192. <label slot="label">
  193. {{'第'+item.deep+'层平级额外积分奖励'}}
  194. </label>
  195. <el-input v-model.number="item.prize" type="number">
  196. <template slot="append" v-if="!ruleForm.additional_score.is_percent_equal">%</template>
  197. <template slot="append" v-if="ruleForm.additional_score.is_percent_equal == 1">积分</template>
  198. </el-input>
  199. </el-form-item>
  200. </div>
  201. </template>
  202. <el-form-item label="开启独立平级奖结算" prop="is_open_equal_settle_type" :label-width="formLabelWidth">
  203. <el-switch v-model="ruleForm.is_open_equal_settle_type" :active-value="1" :inactive-value="0">
  204. </el-switch>
  205. </el-form-item>
  206. <el-form-item v-if="ruleForm.is_open_equal_settle_type==1" prop="equal_settle_type" label="平级奖结算方式" :label-width="formLabelWidth">
  207. <label slot="label">平级奖结算方式
  208. <el-tooltip class="item" effect="dark" content="奖励是由谁来结算平级奖" placement="top">
  209. <i class="el-icon-info"></i>
  210. </el-tooltip>
  211. </label>
  212. <el-col :span="18">
  213. <el-radio-group v-model="ruleForm.equal_settle_type" size="small">
  214. <el-radio :label="0" border>平台结算</el-radio>
  215. <el-radio :label="1" border>上级拿级差或渠道奖者支付</el-radio>
  216. <el-radio :label="2" border>下级拿级差或渠道奖者支付</el-radio>
  217. </el-radio-group>
  218. </el-col>
  219. </el-form-item>
  220. <el-form-item label="是否启用自动升级" prop="is_auto_upgrade" :label-width="formLabelWidth">
  221. <el-switch v-model="ruleForm.is_auto_upgrade" :active-value="1" :inactive-value="0">
  222. </el-switch>
  223. </el-form-item>
  224. <template v-if="ruleForm.is_auto_upgrade == 1">
  225. <?php echo $tpl ?>
  226. </template>
  227. <el-form-item label="购买门店商品升级" v-if="ruleForm.is_auto_upgrade == 1 && is_show_store_upgrade == 1" :label-width="formLabelWidth">
  228. <el-form-item>
  229. <el-switch v-model="ruleForm.upgrade_type_store_goods" :active-value="1"
  230. :inactive-value="0" active-text="开启" inactive-text="关闭">
  231. </el-switch>
  232. </el-form-item>
  233. <el-form-item v-if="ruleForm.upgrade_type_store_goods==1">
  234. <el-radio-group v-model="ruleForm.buy_store_goods_type">
  235. <el-radio :label="0">订单完成
  236. </el-radio>
  237. <el-radio :label="1">支付完成
  238. </el-radio>
  239. </el-radio-group>
  240. </el-form-item>
  241. <el-form-item v-if="ruleForm.upgrade_type_store_goods==1">
  242. <el-radio-group v-model="ruleForm.store_goods_type">
  243. <el-radio :label="1">任意商品</el-radio>
  244. <el-radio :label="2">指定商品</el-radio>
  245. </el-radio-group>
  246. <div style="margin-top: 10px; display: flex;" v-if="ruleForm.store_goods_type==2">
  247. <com-dialog-select-store :multiple="true" @selected="storeGoodsSelect" title="商品选择" :is_show_store_name="true" url="store/store-goods/search-with-store">
  248. <el-button type="primary" plain>选择商品</el-button>
  249. </com-dialog-select-store>
  250. <div style="color: #ff4544; margin-left: 10px;">最多可添加99个商品</div>
  251. </div>
  252. </el-form-item>
  253. </el-form-item>
  254. <el-form-item prop="store_goods_ids" v-if="ruleForm.upgrade_type_store_goods==1 && is_show_store_upgrade == 1" :label-width="formLabelWidth">
  255. <template v-if="ruleForm.store_goods_type==2">
  256. <div style="max-height: 300px;overflow-y: auto;width: 60%;">
  257. <el-table :data="ruleForm.store_goods_list" border style="width: 100%">
  258. <el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
  259. <el-table-column prop="id" align="center" label="商品id" width="100"></el-table-column>
  260. <el-table-column prop="name,cover_pic" label="商品名称" >
  261. <template slot-scope="scope">
  262. <div flex="box:first">
  263. <div style="padding-right: 10px;">
  264. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  265. </div>
  266. <div style="display:flex;flex-direction:column;align-items:flex-start;">
  267. <div>{{scope.row.name}}</div>
  268. <div>
  269. <span style="color: #ff4544;" v-if="scope.row.price">¥{{ scope.row.price }}</span>
  270. <span style="margin-left: 20px;" v-if="scope.row.stock">库存:{{ scope.row.stock }}</span>
  271. </div>
  272. </div>
  273. </div>
  274. </template>
  275. </el-table-column>
  276. <el-table-column label="操作" width="100">
  277. <template slot-scope="scope">
  278. <el-button @click="deleteStoreGoods(scope.$index)" type="primary" size="mini">删除</el-button>
  279. </template>
  280. </el-table-column>
  281. </el-table>
  282. </div>
  283. </template>
  284. </el-form-item>
  285. <el-form-item label="是否启用" prop="status" :label-width="formLabelWidth">
  286. <el-switch v-model="ruleForm.status" :active-value="1" :inactive-value="0">
  287. </el-switch>
  288. </el-form-item>
  289. <el-form-item v-if="ruleForm.status" :key="1" label="权重说明" prop="explain" :label-width="formLabelWidth">
  290. <el-input type="textarea" :rows="8" placeholder="请输入权重说明" v-model="ruleForm.explain" maxlength="1000" show-word-limit></el-input>
  291. </el-form-item>
  292. <el-form-item v-if="!ruleForm.status" :key="2" label="权重说明" :label-width="formLabelWidth">
  293. <el-input type="textarea" :rows="8" placeholder="请输入权重说明" v-model="ruleForm.explain" maxlength="1000" show-word-limit></el-input>
  294. </el-form-item>
  295. <el-form-item label="渠道业绩额外奖励" :label-width="formLabelWidth">
  296. <el-input v-model.number="ruleForm.commission.team_achievement" type="number">
  297. <template slot="append">%</template>
  298. </el-input>
  299. </el-form-item>
  300. <el-form-item label="每月复购补贴奖" prop="is_repurchase_subsidy" :label-width="formLabelWidth">
  301. <el-switch v-model="ruleForm.commission.is_repurchase_subsidy" :active-value="1" :inactive-value="0">
  302. </el-switch>
  303. </el-form-item>
  304. <template v-if="ruleForm.commission.is_repurchase_subsidy == 1">
  305. <el-form-item label="获得奖励条件" prop="condition_goods_list" :label-width="formLabelWidth">
  306. <com-dialog-select :multiple="true" @selected="repurchaseSubsidyGoodsSelect"
  307. title="商品选择">
  308. <el-button type="primary" size="mini">选择商品</el-button>
  309. </com-dialog-select>
  310. <template v-if="ruleForm.commission.repurchase_subsidy_condition.condition_goods_list && ruleForm.commission.repurchase_subsidy_condition.condition_goods_list.length > 0">
  311. <el-table :data="ruleForm.commission.repurchase_subsidy_condition.condition_goods_list" border style="width: 100%">
  312. <el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
  313. <el-table-column prop="id" align="center" label="商品id" width="100"></el-table-column>
  314. <el-table-column prop="name,cover_pic" label="商品名称" >
  315. <template slot-scope="scope">
  316. <div flex="box:first">
  317. <div style="padding-right: 10px;">
  318. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  319. </div>
  320. <div style="display:flex;flex-direction:column;align-items:flex-start;">
  321. <div>{{scope.row.name}}</div>
  322. <div>
  323. <span style="color: #ff4544;" v-if="scope.row.price">¥{{ scope.row.price }}</span>
  324. <span style="margin-left: 20px;" v-if="scope.row.stock">库存:{{ scope.row.stock }}</span>
  325. </div>
  326. </div>
  327. </div>
  328. </template>
  329. </el-table-column>
  330. <el-table-column label="操作" width="100">
  331. <template slot-scope="scope">
  332. <el-button @click="deleteRepurchaseSubsidyGoods(scope.$index)" type="primary" size="mini">删除</el-button>
  333. </template>
  334. </el-table-column>
  335. </el-table>
  336. </template>
  337. </el-form-item>
  338. <el-form-item label="补贴奖1" prop="before_layer" :label-width="formLabelWidth">
  339. <div style="display: flex;align-items: center;">
  340. <span style="display:inline-block;margin-right:4px;">
  341. 用户下单,往关系链上寻找处于前
  342. </span>
  343. <el-input style="width:150px;" v-model.number="ruleForm.commission.repurchase_subsidy_condition.before_layer" type="number">
  344. <template slot="append">层</template>
  345. </el-input>
  346. </div>
  347. <div style="height:10px"></div>
  348. <div style="display: flex;align-items: center;">
  349. <span style="display:inline-block;margin-right:4px;">
  350. 里本等级身份并当月有完成复购的团队长,团队长可获得
  351. </span>
  352. <el-input style="width:150px;" v-model.number="ruleForm.commission.repurchase_subsidy_condition.subsidy_reward1" type="number">
  353. <template slot="append">元</template>
  354. </el-input>
  355. </div>
  356. </el-form-item>
  357. <el-form-item label="补贴奖2" prop="after_layer">
  358. <div style="display: flex;align-items: center;">
  359. <span style="display:inline-block;margin-right:4px;">用户下单,往关系链上寻找处于后</span>
  360. <el-input style="width:150px;" v-model.number="ruleForm.commission.repurchase_subsidy_condition.after_layer" type="number">
  361. <template slot="append">层</template>
  362. </el-input>
  363. </div>
  364. <div style="height:10px"></div>
  365. <div style="display: flex;align-items: center;">
  366. <span style="display:inline-block;margin:4px;">里本等级身份并当月有完成复购的团队长,团队长可获得</span>
  367. <el-input style="width:150px;" v-model.number="ruleForm.commission.repurchase_subsidy_condition.subsidy_reward2" type="number">
  368. <template slot="append">元</template>
  369. </el-input>
  370. </div>
  371. </el-form-item>
  372. </template>
  373. </el-col>
  374. </el-row>
  375. </el-form>
  376. </div>
  377. <el-button class="button-item" :loading="btnLoading" type="primary" @click="submitForm('ruleForm')" size="small">保存
  378. </el-button>
  379. </el-card>
  380. </div>
  381. <script>
  382. const app = new Vue({
  383. el: '#app',
  384. data() {
  385. let repurchase_subsidy_condition = {
  386. condition_goods_list: [],
  387. condition_goods_ids: [],
  388. before_layer: 0,
  389. subsidy_reward1: 0,
  390. after_layer: 0,
  391. subsidy_reward2: 0,
  392. }
  393. return {
  394. origin_level:0,
  395. msg: 1,
  396. options: [], //会员等级列表
  397. level: 0,
  398. form: {
  399. type: [],
  400. },
  401. formLabelWidth: '150px',
  402. showConditionMsg: false,
  403. dialogFormVisible_edit: false,
  404. conditionMsg: '',
  405. weights: [],
  406. levels: [],
  407. ruleForm: {
  408. id:'',
  409. level: '', //当前选中等级
  410. name: '',
  411. status: 0,
  412. condition_type: 1,
  413. score:{
  414. is_percent_team:0,
  415. is_percent_equal:0,
  416. agent_team_prize:0,
  417. agent_equal_prize:0,
  418. agent_over_prize:0,
  419. is_alone_agent_equal_prize:0,
  420. alone_agent_equal_prize_info:[],
  421. is_repurchase_subsidy: 0,
  422. repurchase_subsidy_condition: repurchase_subsidy_condition,
  423. },
  424. additional_score: {
  425. is_percent_team:0,
  426. is_percent_equal:0,
  427. agent_team_prize:0,
  428. agent_equal_prize:0,
  429. agent_over_prize:0,
  430. is_alone_agent_equal_prize: 0,
  431. alone_agent_equal_prize_info: [],
  432. is_repurchase_subsidy: 0,
  433. repurchase_subsidy_condition: repurchase_subsidy_condition,
  434. },
  435. commission:{
  436. is_percent_team:0,
  437. is_percent_equal:0,
  438. agent_team_prize:0,
  439. agent_equal_prize:0,
  440. agent_over_prize:0,
  441. team_achievement:0,
  442. is_alone_agent_equal_prize:0,
  443. alone_agent_equal_prize_info:[],
  444. is_repurchase_subsidy: 0,
  445. repurchase_subsidy_condition: repurchase_subsidy_condition,
  446. },
  447. digital: {
  448. is_percent_team: 0,
  449. is_percent_equal: 0,
  450. agent_team_prize: 0,
  451. agent_equal_prize: 0,
  452. agent_over_prize: 0,
  453. team_achievement: 0,
  454. is_alone_agent_equal_prize:0,
  455. alone_agent_equal_prize_info:[],
  456. is_repurchase_subsidy: 0,
  457. repurchase_subsidy_condition: repurchase_subsidy_condition,
  458. },
  459. buy_goods_type: 0,
  460. is_auto_upgrade: 1,
  461. goods_type: 0,
  462. upgrade_type_condition: 1,
  463. upgrade_type_goods: 1,
  464. indicators_num: 1,
  465. rule: '',
  466. explain : '',
  467. goods_ids: [],
  468. checked_condition_keys: [], //对应条件的key
  469. goods_list: [],
  470. checked_condition_values:<?= $key_arr?>,
  471. is_open_equal_settle_type:0,
  472. equal_settle_type:0,
  473. buy_store_goods_type: 0,
  474. store_goods_type: 1,
  475. upgrade_type_store_goods: 0,
  476. store_goods_ids:[],
  477. store_goods_list:[],
  478. is_custom_condition_num: 0,
  479. },
  480. options_list:<?= $source_list ?>,
  481. checkbox_list:<?= $checkbox_list ?>,
  482. rules: {
  483. level: [{
  484. required: true,
  485. message: '请选择经销商等级',
  486. trigger: 'change'
  487. }, ],
  488. name: [{
  489. required: true,
  490. message: '请输入经销商等级名称',
  491. trigger: 'change'
  492. }, ],
  493. status: [{
  494. required: true,
  495. message: '请选择经销商等级状态',
  496. trigger: 'change'
  497. }, ],
  498. explain: [{
  499. required: true,
  500. message: '等级说明不能为空',
  501. trigger: 'change'
  502. }, ],
  503. },
  504. btnLoading: false,
  505. cardLoading: false,
  506. formLabelWidth: '150px',
  507. goodsCatsDialogVisible: false,
  508. currentGoodsCats: [],
  509. currentGoodsCatsIndex: null,
  510. currentGoodsCatsName: '',
  511. cat_list: <?= $cat_list ?>,
  512. is_show_additional_score: <?= $is_show_additional_score ?>,
  513. is_set_condition: false,
  514. is_show_store_upgrade: <?= $is_show_store_upgrade ?>,
  515. is_show_condition_num: true,
  516. };
  517. },
  518. mounted() {
  519. if (getQuery('id')) {
  520. this.loadData();
  521. }else{
  522. this.checked_condition_values_fourArr=[
  523. {
  524. itemName: "默认等级",
  525. val: 0
  526. }
  527. ]
  528. this.loadData();
  529. }
  530. // try {
  531. // console.log('ruleForm.checked_condition_values[11].value.personal_order_num',
  532. // this.ruleForm.checked_condition_values[11].value.personal_order_num, '13456')
  533. // } catch (e) {
  534. // console.error('ruleForm.checked_condition_values[11].value.personal_order_num', e)
  535. // }
  536. console.info(this.ruleForm.checked_condition_keys);
  537. console.info(this.ruleForm.checked_condition_values, JSON.stringify(this.ruleForm.checked_condition_values));
  538. // ruleForm.checked_condition_values[11].value.personal_order_num
  539. },
  540. methods: {
  541. close(e) {
  542. this.visible = false;
  543. },
  544. goodsSelect(param) {
  545. for (let j in param) {
  546. let item = param[j];
  547. if (this.ruleForm.goods_ids.length >= 99) {
  548. this.$message.error('指定商品不能大于99个');
  549. return;
  550. }
  551. let flag = true;
  552. for (let i in this.ruleForm.goods_ids) {
  553. if (this.ruleForm.goods_ids[i] == param[j].id) {
  554. flag = false;
  555. break;
  556. }
  557. }
  558. if (flag) {
  559. this.ruleForm.goods_ids.push(param[j].id);
  560. this.ruleForm.goods_list.push({
  561. id: param[j].id,
  562. condition_num: 1,
  563. name: param[j].goods_name,
  564. cover_pic: param[j].cover_pic,
  565. price: param[j].price,
  566. stock: param[j].stock,
  567. });
  568. }
  569. }
  570. },
  571. clickSelectConditionGoods(){
  572. this.$refs.cgoods.$el.click()
  573. },
  574. conditionGoodsSelect(param) {
  575. let ckey;
  576. this.ruleForm.checked_condition_values.forEach(function(item, index){
  577. if(item.key==50)
  578. {
  579. ckey=index;
  580. }
  581. })
  582. let gval=this.ruleForm.checked_condition_values[ckey].value.team_goods;
  583. let garr=[];
  584. if(gval.length>0)
  585. {
  586. garr=gval.split(",")
  587. }
  588. for (let j in param) {
  589. let item = param[j];
  590. let isHave=false;
  591. garr.forEach(element => {
  592. if(element==param[j].id)
  593. {
  594. isHave=true;
  595. }
  596. });
  597. if(!isHave)
  598. {
  599. garr.push(param[j].id);
  600. }
  601. }
  602. gval=garr.join(',');
  603. this.ruleForm.checked_condition_values[ckey].value.team_goods=gval;
  604. },
  605. clickSelectConditionGoodsCats(val, name, index){
  606. this.currentGoodsCatsIndex = index
  607. this.currentGoodsCatsName = name
  608. if (val === "") {
  609. val = []
  610. } else if (typeof val === 'string') {
  611. val = JSON.parse(val)
  612. }
  613. this.currentGoodsCats = val
  614. this.goodsCatsDialogVisible = true
  615. },
  616. onChangGoodsCat(val) {
  617. this.$set(this.ruleForm.checked_condition_values[this.currentGoodsCatsIndex].value, this.currentGoodsCatsName, JSON.stringify(val))
  618. },
  619. // 2.1 提交表单编辑
  620. submitForm(formName) {
  621. let self = this;
  622. self.showConditionMsg = false;
  623. if(self.ruleForm.upgrade_type_goods ==1){
  624. if (self.ruleForm.goods_type == 2 && self.ruleForm.goods_list.length == 0) { //选中的checkBox
  625. self.$message.error('请选择升级商品');
  626. return;
  627. }
  628. }
  629. if (self.ruleForm.upgrade_type_condition == 1&&self.ruleForm.is_auto_upgrade == 1) { //选中升级条件
  630. if (self.ruleForm.checked_condition_keys.length == 0) { //选中的checkBox
  631. self.$message.error('请完善升级条件');
  632. return;
  633. }
  634. let checked_condition_values = self.ruleForm.checked_condition_values;
  635. self.ruleForm.checked_condition_keys.forEach(function(item, index){
  636. for(i in self.ruleForm.checked_condition_values[index].value) {
  637. if (!self.ruleForm.checked_condition_values[index].value[i]) {
  638. self.conditionMsg = '请完善条件:' + (parseInt(index) + 1);
  639. return false;
  640. }
  641. }
  642. });
  643. if (self.showConditionMsg) {
  644. this.$message.error(self.conditionMsg);
  645. return
  646. }
  647. if (this.ruleForm.checked_condition_keys.length > 0) {
  648. if (this.ruleForm.condition_type == 0) {
  649. this.$message.error('请选择条件升级的方式升级类型');
  650. return;
  651. }
  652. }
  653. }
  654. this.$refs[formName].validate((valid) => {
  655. if (valid) {
  656. self.btnLoading = true;
  657. request({
  658. params: {
  659. r: 'agent/level/edit'
  660. },
  661. method: 'post',
  662. data: {
  663. form: self.ruleForm,
  664. }
  665. }).then(e => {
  666. self.btnLoading = false;
  667. if (e.data.code == 0) {
  668. self.$message.success(e.data.msg);
  669. navigateTo({
  670. r: 'agent/level/index'
  671. })
  672. } else {
  673. self.$message.error(e.data.msg);
  674. }
  675. }).catch(e => {
  676. self.$message.error(e.data.msg);
  677. self.btnLoading = false;
  678. });
  679. } else {
  680. console.log('error submit!!');
  681. return false;
  682. }
  683. });
  684. },
  685. // 获取显示的值
  686. loadData() {
  687. this.cardLoading = true;
  688. request({
  689. params: {
  690. r: 'agent/level/edit',
  691. id: getQuery('id'),
  692. },
  693. method: 'get'
  694. }).then(e => {
  695. this.cardLoading = false;
  696. if (e.data.code == 0) {
  697. if (e.data.data.detail) {
  698. let detail = e.data.data.detail
  699. console.log('detail', detail)
  700. Object.assign(this.ruleForm, detail);
  701. this.origin_level = this.ruleForm.level;
  702. if (Array.isArray(this.ruleForm.goods_list)) {
  703. for (const goodsItem of this.ruleForm.goods_list) {
  704. goodsItem.condition_num = goodsItem.condition_num || 1
  705. }
  706. }
  707. }
  708. this.weights = e.data.data.weights;
  709. } else {
  710. this.$message.error(e.data.msg);
  711. }
  712. }).catch(e => {
  713. console.log(e);
  714. });
  715. },
  716. deleteGoods(index) {
  717. this.ruleForm.goods_list.splice(index, 1);
  718. this.ruleForm.goods_ids.splice(index, 1);
  719. },
  720. setCondition() {
  721. navigateTo({
  722. r: 'agent/level/condition',
  723. });
  724. },
  725. clickSelectCloudStockConditionGoods(){
  726. this.$refs.csgoods.$el.click()
  727. },
  728. conditionCloudStockGoodsSelect(param) {
  729. let ckey;
  730. this.ruleForm.checked_condition_values.forEach(function(item, index){
  731. if(item.key==68)
  732. {
  733. ckey=index;
  734. }
  735. })
  736. let gval=this.ruleForm.checked_condition_values[ckey].value.team_goods;
  737. let garr=[];
  738. if(gval && gval.length>0)
  739. {
  740. garr=gval.split(",")
  741. }
  742. for (let j in param) {
  743. let item = param[j];
  744. let isHave=false;
  745. garr.forEach(element => {
  746. if(element==param[j].id)
  747. {
  748. isHave=true;
  749. }
  750. });
  751. if(!isHave)
  752. {
  753. garr.push(param[j].id);
  754. }
  755. }
  756. gval=garr.join(',');
  757. this.ruleForm.checked_condition_values[ckey].value.team_goods=gval;
  758. console.log(this.ruleForm.checked_condition_values[ckey]);
  759. },
  760. clickSelectCloudStockConditionGoodsByNums(){
  761. this.$refs.csgoodscondition.$el.click()
  762. },
  763. deleteGoodsThree(index) {
  764. let ckey;
  765. this.ruleForm.checked_condition_values.forEach(function(item, index){
  766. if(item.key==69)
  767. {
  768. ckey=index;
  769. }
  770. })
  771. this.ruleForm.checked_condition_values[ckey].value.team_goods.splice(index, 1);
  772. },
  773. conditionCloudStockGoodsSelectByNums(param) {
  774. let ckey;
  775. this.ruleForm.checked_condition_values.forEach(function(item, index){
  776. if(item.key==69)
  777. {
  778. ckey=index;
  779. }
  780. })
  781. for (let j in param) {
  782. let item = param[j];
  783. let obj = {
  784. id: item.id,
  785. name: item.goods_name,
  786. cover_pic: item.cover_pic,
  787. cost_price: item.cost_price,
  788. original_price: item.original_price,
  789. }
  790. this.$set(obj,'num',1);
  791. this.ruleForm.checked_condition_values[ckey].value.team_goods.push(obj);
  792. }
  793. },
  794. //选择商品
  795. storeGoodsSelect(param) {
  796. for (let j in param) {
  797. let item = param[j];
  798. if (this.ruleForm.store_goods_ids.length >= 99) {
  799. this.$message.error('指定商品不能大于99个');
  800. return;
  801. }
  802. let flag = true;
  803. for (let i in this.ruleForm.store_goods_ids) {
  804. if (this.ruleForm.store_goods_ids[i] == param[j].id) {
  805. flag = false;
  806. break;
  807. }
  808. }
  809. if (flag) {
  810. this.ruleForm.store_goods_ids.push(param[j].id);
  811. this.ruleForm.store_goods_list.push({
  812. id: param[j].id,
  813. name: param[j].goods_name,
  814. cover_pic: param[j].cover_pic,
  815. price: param[j].price,
  816. stock: param[j].stock,
  817. });
  818. }
  819. }
  820. },
  821. //删除商品
  822. deleteStoreGoods(index) {
  823. this.ruleForm.store_goods_list.splice(index, 1);
  824. this.ruleForm.store_goods_ids.splice(index, 1);
  825. },
  826. repurchaseSubsidyGoodsSelect(param) {
  827. console.log('this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list',this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list)
  828. if(this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list == undefined){
  829. this.$set(this.ruleForm.commission.repurchase_subsidy_condition,'condition_goods_list', [])
  830. }
  831. if(this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_ids == undefined){
  832. this.$set(this.ruleForm.commission.repurchase_subsidy_condition,'condition_goods_ids', [])
  833. }
  834. for (let j in param) {
  835. let item = param[j];
  836. if (this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list.length >= 99) {
  837. this.$message.error('指定商品不能大于99个');
  838. return;
  839. }
  840. let flag = true;
  841. for (let i in this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_ids) {
  842. if (this.ruleForm.store_goods_ids[i] == param[j].id) {
  843. flag = false;
  844. break;
  845. }
  846. }
  847. if (flag) {
  848. this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_ids.push(param[j].id);
  849. this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list.push({
  850. id: param[j].id,
  851. name: param[j].goods_name,
  852. cover_pic: param[j].cover_pic,
  853. price: param[j].price,
  854. stock: param[j].stock,
  855. });
  856. }
  857. }
  858. },
  859. deleteRepurchaseSubsidyGoods(index){
  860. this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_list.splice(index, 1);
  861. this.ruleForm.commission.repurchase_subsidy_condition.condition_goods_ids.splice(index, 1);
  862. }
  863. }
  864. });
  865. </script>
  866. <style>
  867. .form-body {
  868. padding: 20px;
  869. background-color: #fff;
  870. margin-bottom: 20px;
  871. padding-right: 20%;
  872. min-width: 900px;
  873. }
  874. .form-body .el-form-item {
  875. padding-right: 25%;
  876. min-width: 850px;
  877. }
  878. .form-button {
  879. margin: 0;
  880. }
  881. .form-button .el-form-item__content {
  882. margin-left: 0 !important;
  883. }
  884. .button-item {
  885. padding: 9px 25px;
  886. }
  887. .check-group {
  888. font-size: 14px !important;
  889. }
  890. .check-group .el-col {
  891. display: flex;
  892. }
  893. .check-group .el-input {
  894. margin: 0 5px;
  895. }
  896. .check-group .el-col .el-checkbox {
  897. display: flex;
  898. align-items: center;
  899. }
  900. .check-group .el-col .el-input {
  901. width: 100px;
  902. }
  903. .check-group .el-col .el-input .el-input__inner {
  904. height: 30px;
  905. width: 100px;
  906. }
  907. .el-checkbox-group .el-col {
  908. margin-bottom: 10px;
  909. }
  910. .condition_common {
  911. display: flex;
  912. align-items: center;
  913. }
  914. .condition_common_five {
  915. display: flex;
  916. }
  917. </style>