edit.html 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. <link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
  2. <link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
  3. <style>
  4. #detailPage {
  5. border-radius: 10px;
  6. color: #444;
  7. font-weight: 500;
  8. padding: 0px 10px 60px;
  9. position: relative;
  10. }
  11. .el-image {
  12. width: 100%;
  13. height: 100%;
  14. }
  15. .image-slot {
  16. display: flex;
  17. justify-content: center;
  18. align-items: center;
  19. height: 100%;
  20. }
  21. .goods-image {
  22. width: 60px;
  23. height: 60px;
  24. border-radius: 4px;
  25. border: 1px solid #e6e6e6;
  26. margin-right: 14px;
  27. }
  28. .shopro-submit-container {
  29. display: flex;
  30. justify-content: flex-end;
  31. position: fixed;
  32. right: 40px;
  33. bottom: 10px;
  34. /* width: 100%; */
  35. height: 40px;
  36. }
  37. .shopro-submit-button {
  38. width: 88px;
  39. height: 36px;
  40. line-height: 36px;
  41. text-align: center;
  42. background: #7438D5;
  43. font-size: 14px;
  44. color: #fff;
  45. cursor: pointer;
  46. border-radius: 5px;
  47. }
  48. .sku-price-rate {
  49. margin-right: 10px;
  50. }
  51. .sku-price-rate,
  52. .sku-price-money {
  53. width: 80px;
  54. display: flex;
  55. align-items: center;
  56. justify-content: center;
  57. height: 50px;
  58. }
  59. .commission-body-container {
  60. line-height: 50px;
  61. display: flex;
  62. border-left: 1px solid #e6e6e6;
  63. }
  64. .commission-header-container {
  65. line-height: 40px;
  66. border-left: 1px solid #e6e6e6;
  67. }
  68. .commission-header-container .commission-store-name,
  69. .commission-header-container .commission-item,
  70. .commission-header-container .commission-sku,
  71. .commission-header-container .commission-price {
  72. border-top: 1px solid #e6e6e6;
  73. background: #f9f9f9;
  74. }
  75. .commission-store-name {
  76. width: 120px;
  77. min-width: 120px;
  78. padding: 0 10px;
  79. text-align: center;
  80. border-right: 1px solid #e6e6e6;
  81. border-bottom: 1px solid #e6e6e6;
  82. }
  83. .commission-item {
  84. width: 190px;
  85. min-width: 190px;
  86. padding: 0 10px;
  87. display: flex;
  88. justify-content: center;
  89. border-right: 1px solid #e6e6e6;
  90. border-bottom: 1px solid #e6e6e6;
  91. }
  92. .commission-sku,.commission-price {
  93. width: 180px;
  94. min-width: 180px;
  95. padding: 0 20px;
  96. border-bottom: 1px solid #e6e6e6;
  97. border-right: 1px solid #e6e6e6;
  98. text-align: center;
  99. }
  100. .commission-price {
  101. width: 100px;
  102. min-width: 100px;
  103. padding: 0 20px;
  104. }
  105. .commission-item-batch {
  106. cursor: pointer;
  107. }
  108. .el-button--text,
  109. .el-button--text:hover,
  110. .el-button--text:focus {
  111. color: #999;
  112. }
  113. .batch-setting-container {
  114. line-height: 50px;
  115. display: flex;
  116. flex-direction: column;
  117. border-left: 1px solid #e6e6e6;
  118. }
  119. .alone-setting-container {
  120. line-height: 50px;
  121. display: flex;
  122. border-left: 1px solid #e6e6e6;
  123. }
  124. .commission-order-status-icon{
  125. font-size: 20px;
  126. color: #7C7C7C;
  127. margin-left: 16px;
  128. }
  129. .el-popover--plain{
  130. padding: 12px;
  131. color: #444;
  132. }
  133. .batch-edit-icon{
  134. margin-left:10px;margin-top: -3px;
  135. }
  136. .batch-question-icon{
  137. margin-left: 10px;font-size: 14px;
  138. }
  139. [v-cloak] {
  140. display: none
  141. }
  142. </style>
  143. <script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
  144. <script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
  145. <script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
  146. <div id="detailPage" v-cloak>
  147. <el-form label-width="124px">
  148. <div v-if="isalone==0">
  149. <div class="shopro-form-group-title">
  150. 商品信息
  151. </div>
  152. <div style="padding: 0 40px;">
  153. <div class="display-flex" style="margin-bottom:10px">
  154. <div class="goods-image" v-if="goodsDetail.image">
  155. <el-image :src="Fast.api.cdnurl(goodsDetail.image)" fit="container">
  156. <div slot="error" class="image-slot">
  157. <i class="el-icon-picture-outline"></i>
  158. </div>
  159. </el-image>
  160. </div>
  161. <div class="goods-title">
  162. {{goodsDetail.title}}
  163. </div>
  164. </div>
  165. </div>
  166. </div>
  167. <div>
  168. <div class="shopro-form-group-title">
  169. <div class="shopro-form-group-title-line"></div>佣金设置
  170. </div>
  171. <el-form-item label="是否参与:">
  172. <div>
  173. <el-radio-group v-model="status">
  174. <el-radio :label="0">不参与</el-radio>
  175. <el-radio :label="1">参与</el-radio>
  176. </el-radio-group>
  177. </div>
  178. </el-form-item>
  179. <div v-if="status==1">
  180. <el-form-item label="佣金规则:">
  181. <div>
  182. <el-radio-group v-model="self_rules" @change="selfRulesChange">
  183. <el-radio :label="0">默认规则</el-radio>
  184. <el-radio v-if="isalone==0" :label="1">独立规则</el-radio>
  185. <el-radio :label="2">批量规则</el-radio>
  186. </el-radio-group>
  187. </div>
  188. </el-form-item>
  189. <el-form-item label="分销商业绩:">
  190. <div class="display-flex">
  191. <el-radio-group v-model="commission_order_status">
  192. <el-radio :label="0">不计入</el-radio>
  193. <el-radio :label="1">计入</el-radio>
  194. </el-radio-group>
  195. <el-popover
  196. placement="top"
  197. trigger="hover"
  198. content="关闭则只分佣,不计入分销订单金额和订单数">
  199. <i class="el-icon-question commission-order-status-icon" slot="reference"></i>
  200. </el-popover>
  201. </div>
  202. </el-form-item>
  203. <div v-if="self_rules==1 || self_rules==2">
  204. <el-form-item label="分销设置:">
  205. <el-switch v-model="commission_config" @change="changeCommissionConfig" active-color="#6E3DC8"
  206. :active-value="1" :inactive-value="0" inactive-color="#999">
  207. </el-switch>
  208. <span style="margin-left: 14px;" v-if="commission_config==0">默认设置</span>
  209. <span style="margin-left: 14px;" v-if="commission_config==1">独立设置</span>
  210. </el-form-item>
  211. <div v-if="commission_config==1">
  212. <el-form-item label="分销层级:">
  213. <el-radio-group v-model="commission_config_obj.commission_level">
  214. <el-radio label="1">一级</el-radio>
  215. <el-radio label="2">二级</el-radio>
  216. <el-radio label="3">三级</el-radio>
  217. </el-radio-group>
  218. </el-form-item>
  219. <el-form-item label="分销内购:">
  220. <el-radio-group v-model="commission_config_obj.self_buy">
  221. <el-radio label="0">关闭</el-radio>
  222. <el-radio label="1">开启</el-radio>
  223. </el-radio-group>
  224. <div class="title-tip">
  225. 内购优惠开启后,分销商自己购买时,下单可以给自己返佣
  226. </div>
  227. </el-form-item>
  228. <el-form-item label="商品结算方式:">
  229. <el-radio-group v-model="commission_config_obj.commission_price_type">
  230. <el-radio label="goods_price">商品价</el-radio>
  231. <el-radio label="pay_price">实际支付价</el-radio>
  232. </el-radio-group>
  233. <div class="title-tip">
  234. 商品价: 商品实际售价/规格价,实际支付价: 实际支付的费用(不含运费)
  235. </div>
  236. </el-form-item>
  237. <el-form-item label="佣金结算方式:">
  238. <el-radio-group v-model="commission_config_obj.commission_event">
  239. <el-radio label="payed">支付后结算</el-radio>
  240. <el-radio label="confirm">确认收货结算</el-radio>
  241. <el-radio label="finish">订单完成结算</el-radio>
  242. <el-radio label="admin">手动打款</el-radio>
  243. </el-radio-group>
  244. </el-form-item>
  245. </div>
  246. </div>
  247. <div style="padding: 0 40px;">
  248. <div v-if="self_rules==0 && radioEnd==0" style="overflow: auto;">
  249. <div class="display-flex goods-header commission-header-container">
  250. <div class="commission-store-name">分销等级名称</div>
  251. <div class="commission-item">一级(自购)佣金比例</div>
  252. <div class="commission-item">二级佣金比例</div>
  253. <div class="commission-item">三级佣金比例</div>
  254. </div>
  255. <div class="display-flex goods-body-item commission-body-container"
  256. v-for="levelItem in levelList">
  257. <div class="commission-store-name">
  258. {{levelItem.name}}
  259. </div>
  260. <div class="commission-item">
  261. {{levelItem.commission_rules.commission_1}}%
  262. </div>
  263. <div class="commission-item">
  264. {{levelItem.commission_rules.commission_2}}%
  265. </div>
  266. <div class="commission-item">
  267. {{levelItem.commission_rules.commission_3}}%
  268. </div>
  269. </div>
  270. </div>
  271. <div v-if="self_rules==1 && radioEnd==1" style="overflow: auto;">
  272. <div class="display-flex commission-header-container">
  273. <div class="commission-sku" style="border-bottom: 1px solid #e6e6e6;text-align: center;">
  274. 商品规格</div>
  275. <div class="commission-price" style="border-bottom: 1px solid #e6e6e6;text-align: center;">
  276. 价格</div>
  277. <div class="commission-store-name">分销商等级</div>
  278. <div class="commission-item">
  279. 一级(自购)佣金比例
  280. <el-popover placement="top" width="200" v-model="batchShow[1]">
  281. <div>
  282. <div class="display-flex"
  283. style="justify-content: space-between;padding: 5px 0;">
  284. <div class="sku-price-rate">
  285. <el-input v-model="batchList.rate" size="mini" v-enter-number
  286. :disabled="batchList.money!=''">
  287. <template slot="append">%</template>
  288. </el-input>
  289. </div>
  290. <div class="sku-price-rate">
  291. <el-input v-model="batchList.money" size="mini" v-enter-number
  292. :disabled="batchList.rate!=''">
  293. <template slot="append">元</template>
  294. </el-input>
  295. </div>
  296. </div>
  297. </div>
  298. <div style="text-align: right; margin: 0">
  299. <el-button size="mini" type="text" @click="batchSet('1','cancel')">取消
  300. </el-button>
  301. <el-button type="primary" size="mini" @click="batchSet('1','define')">确定
  302. </el-button>
  303. </div>
  304. <img class="batch-edit-icon" slot="reference"
  305. src="/assets/addons/shopro/img/goods/batch.png">
  306. </el-popover>
  307. </div>
  308. <div class="commission-item">
  309. 二级佣金比例
  310. <el-popover placement="top" content="没有请填写为0" trigger="hover">
  311. <i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
  312. </el-popover>
  313. <el-popover placement="top" width="200" v-model="batchShow[2]">
  314. <div>
  315. <div class="display-flex"
  316. style="justify-content: space-between;padding: 5px 0;">
  317. <div class="sku-price-rate">
  318. <el-input v-model="batchList.rate" size="mini" v-enter-number
  319. :disabled="batchList.money!=''">
  320. <template slot="append">%</template>
  321. </el-input>
  322. </div>
  323. <div class="sku-price-rate">
  324. <el-input v-model="batchList.money" size="mini" v-enter-number
  325. :disabled="batchList.rate!=''">
  326. <template slot="append">元</template>
  327. </el-input>
  328. </div>
  329. </div>
  330. </div>
  331. <div style="text-align: right; margin: 0">
  332. <el-button size="mini" type="text" @click="batchSet('2','cancel')">取消
  333. </el-button>
  334. <el-button type="primary" size="mini" @click="batchSet('2','define')">确定
  335. </el-button>
  336. </div>
  337. <img class="batch-edit-icon" slot="reference"
  338. src="/assets/addons/shopro/img/goods/batch.png">
  339. </el-popover>
  340. </div>
  341. <div class="commission-item">
  342. 三级佣金比例
  343. <el-popover placement="top" content="没有请填写为0" trigger="hover">
  344. <i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
  345. </el-popover>
  346. <el-popover placement="top" width="200" v-model="batchShow[3]">
  347. <div>
  348. <div class="display-flex"
  349. style="justify-content: space-between;padding: 5px 0;">
  350. <div class="sku-price-rate">
  351. <el-input v-model="batchList.rate" size="mini" v-enter-number
  352. :disabled="batchList.money!=''">
  353. <template slot="append">%</template>
  354. </el-input>
  355. </div>
  356. <div class="sku-price-rate">
  357. <el-input v-model="batchList.money" size="mini" v-enter-number
  358. :disabled="batchList.rate!=''">
  359. <template slot="append">元</template>
  360. </el-input>
  361. </div>
  362. </div>
  363. </div>
  364. <div style="text-align: right; margin: 0">
  365. <el-button size="mini" type="text" @click="batchSet('3','cancel')">取消
  366. </el-button>
  367. <el-button type="primary" size="mini" @click="batchSet('3','define')">确定
  368. </el-button>
  369. </div>
  370. <img class="batch-edit-icon" slot="reference"
  371. src="/assets/addons/shopro/img/goods/batch.png">
  372. </el-popover>
  373. </div>
  374. </div>
  375. <div class="alone-setting-container">
  376. <div>
  377. <div class="display-flex" v-for="sku in goodsDetail.sku_price">
  378. <!-- 规格&价格 -->
  379. <div class="commission-sku" :style="{height:51*levelList.length+'px'}" style="display: flex;justify-content: center;align-items: center;line-height: 20px;">
  380. <span v-if="goodsDetail.is_sku==1">{{sku.goods_sku_text.join(',')}}</span>
  381. <span v-if="goodsDetail.is_sku==0">默认规格</span>
  382. </div>
  383. <div class="commission-price" :style="{height:51*levelList.length+'px',lineHeight:51*levelList.length+'px'}">{{sku.price}}</div>
  384. <div>
  385. <!-- 等级 -->
  386. <div class="commission-store-name" v-for="(levelItem,level) in levelList">
  387. {{levelItem.name}}
  388. </div>
  389. </div>
  390. </div>
  391. </div>
  392. <div>
  393. <div v-for="levelObj in commission_rules">
  394. <div class="display-flex" v-for="commissionitem in levelObj">
  395. <div class="display-flex commission-item">
  396. <div class="sku-price-rate">
  397. <el-input v-model="commissionitem[1].rate" size="mini" v-enter-number
  398. @input="inputChange" :disabled="commissionitem[1].money!=''">
  399. <template slot="append">%</template>
  400. </el-input>
  401. </div>
  402. <div class="sku-price-money">
  403. <el-input v-model="commissionitem[1].money" size="mini" v-enter-number
  404. @input="inputChange" :disabled="commissionitem[1].rate!=''">
  405. <template slot="append">元</template>
  406. </el-input>
  407. </div>
  408. </div>
  409. <div class="display-flex commission-item">
  410. <div class="sku-price-rate">
  411. <el-input v-model="commissionitem[2].rate" size="mini" v-enter-number
  412. @input="inputChange" :disabled="commissionitem[2].money!=''">
  413. <template slot="append">%</template>
  414. </el-input>
  415. </div>
  416. <div class="sku-price-money">
  417. <el-input v-model="commissionitem[2].money" size="mini" v-enter-number
  418. @input="inputChange" :disabled="commissionitem[2].rate!=''">
  419. <template slot="append">元</template>
  420. </el-input>
  421. </div>
  422. </div>
  423. <div class="display-flex commission-item">
  424. <div class="sku-price-rate">
  425. <el-input v-model="commissionitem[3].rate" size="mini" v-enter-number
  426. @input="inputChange" :disabled="commissionitem[3].money!=''">
  427. <template slot="append">%</template>
  428. </el-input>
  429. </div>
  430. <div class="sku-price-money">
  431. <el-input v-model="commissionitem[3].money" size="mini" v-enter-number
  432. @input="inputChange" :disabled="commissionitem[3].rate!=''">
  433. <template slot="append">元</template>
  434. </el-input>
  435. </div>
  436. </div>
  437. </div>
  438. </div>
  439. </div>
  440. </div>
  441. </div>
  442. <div v-if="self_rules==2 && radioEnd==2" style="overflow: auto;">
  443. <div class="display-flex commission-header-container">
  444. <div class="commission-store-name">分销商等级</div>
  445. <div class="commission-item commission-item-batch">
  446. 一级(自购)佣金比例
  447. <el-popover placement="top" width="200" v-model="batchShow[1]">
  448. <div>
  449. <div class="display-flex" style="padding: 5px 0;">
  450. <div class="sku-price-rate">
  451. <el-input v-model="batchList.rate" size="mini" v-enter-number>
  452. <template slot="append">%</template>
  453. </el-input>
  454. </div>
  455. </div>
  456. </div>
  457. <div style="text-align: right; margin: 0">
  458. <el-button size="mini" type="text" @click="batchSet('1','cancel')">取消
  459. </el-button>
  460. <el-button type="primary" size="mini" @click="batchSet('1','define')">确定
  461. </el-button>
  462. </div>
  463. <img class="batch-edit-icon" slot="reference"
  464. src="/assets/addons/shopro/img/goods/batch.png">
  465. </el-popover>
  466. </div>
  467. <div class="commission-item commission-item-batch">
  468. 二级佣金比例
  469. <el-popover placement="top" content="没有请填写为0" trigger="hover">
  470. <i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
  471. </el-popover>
  472. <el-popover placement="top" width="200" v-model="batchShow[2]">
  473. <div>
  474. <div class="display-flex" style="padding: 5px 0;">
  475. <div class="sku-price-rate">
  476. <el-input v-model="batchList.rate" size="mini" v-enter-number>
  477. <template slot="append">%</template>
  478. </el-input>
  479. </div>
  480. </div>
  481. </div>
  482. <div style="text-align: right; margin: 0">
  483. <el-button size="mini" type="text" @click="batchSet('2','cancel')">取消
  484. </el-button>
  485. <el-button type="primary" size="mini" @click="batchSet('2','define')">确定
  486. </el-button>
  487. </div>
  488. <img class="batch-edit-icon" slot="reference"
  489. src="/assets/addons/shopro/img/goods/batch.png">
  490. </el-popover>
  491. </div>
  492. <div class="commission-item commission-item-batch">
  493. 三级佣金比例
  494. <el-popover placement="top" content="没有请填写为0" trigger="hover">
  495. <i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
  496. </el-popover>
  497. <el-popover placement="top" width="200" v-model="batchShow[3]">
  498. <div>
  499. <div class="display-flex" style="padding: 5px 0;">
  500. <div class="sku-price-rate">
  501. <el-input v-model="batchList.rate" size="mini" v-enter-number>
  502. <template slot="append">%</template>
  503. </el-input>
  504. </div>
  505. </div>
  506. </div>
  507. <div style="text-align: right; margin: 0">
  508. <el-button size="mini" type="text" @click="batchSet('3','cancel')">取消
  509. </el-button>
  510. <el-button type="primary" size="mini" @click="batchSet('3','define')">确定
  511. </el-button>
  512. </div>
  513. <img class="batch-edit-icon" slot="reference"
  514. src="/assets/addons/shopro/img/goods/batch.png">
  515. </el-popover>
  516. </div>
  517. </div>
  518. <div class="batch-setting-container" style="flex-direction: column;">
  519. <div class="batch-setting-item display-flex" v-for="levelItem in levelList">
  520. <div class="commission-store-name">
  521. {{levelItem.name}}
  522. </div>
  523. <div>
  524. <div class="display-flex">
  525. <div class="display-flex commission-item">
  526. <div class="sku-price-rate">
  527. <el-input v-model="commission_rules[levelItem.level][1].rate"
  528. size="mini" v-enter-number @input="inputChange">
  529. <template slot="append">%</template>
  530. </el-input>
  531. </div>
  532. </div>
  533. <div class="display-flex commission-item">
  534. <div class="sku-price-rate">
  535. <el-input v-model="commission_rules[levelItem.level][2].rate"
  536. size="mini" v-enter-number @input="inputChange">
  537. <template slot="append">%</template>
  538. </el-input>
  539. </div>
  540. </div>
  541. <div class="display-flex commission-item">
  542. <div class="sku-price-rate">
  543. <el-input v-model="commission_rules[levelItem.level][3].rate"
  544. size="mini" v-enter-number @input="inputChange">
  545. <template slot="append">%</template>
  546. </el-input>
  547. </div>
  548. </div>
  549. </div>
  550. </div>
  551. </div>
  552. </div>
  553. </div>
  554. </div>
  555. </div>
  556. </div>
  557. </el-form>
  558. <div class="shopro-submit-container">
  559. <div class="shopro-submit-button" @click="formSubmit()">确定</div>
  560. </div>
  561. </div>