index.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645
  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. #indexPage {
  5. border-radius: 10px 10px 0px 0px;
  6. color: #444;
  7. font-weight: 500;
  8. position: relative;
  9. }
  10. .el-form-item {
  11. padding: 0 0 0 100px;
  12. }
  13. .el-form-item {
  14. margin-bottom: 16px;
  15. }
  16. .become-register-row {
  17. display: flex;
  18. font-size: 13px;
  19. }
  20. .become-register-row-title {
  21. background: #f9f9f9;
  22. border: none;
  23. }
  24. .become-register-row-item {
  25. width: 260px;
  26. min-width: 260px;
  27. padding: 0 20px;
  28. line-height: 44px;
  29. }
  30. .become-register-row-item-center {
  31. width: 240px;
  32. min-width: 240px;
  33. }
  34. .become-register-row-title .become-register-row-item {
  35. line-height: 40px;
  36. }
  37. .become-register-row-item-last {
  38. width: 130px;
  39. min-width: 130px;
  40. display: flex;
  41. align-items: center;
  42. }
  43. .become_register-contaoner {
  44. display: flex;
  45. }
  46. .become_register_add-button {
  47. cursor: pointer;
  48. color: #7438D5;
  49. width: 60px;
  50. margin-top: 16px;
  51. font-size: 13px;
  52. }
  53. .become_register_add-button i {
  54. margin-right: 6px;
  55. }
  56. .become_register_delete {
  57. color: #FF5959;
  58. cursor: pointer;
  59. }
  60. .become-register-row-frist {
  61. width: 90px;
  62. color: rgba(0, 0, 0, 0);
  63. }
  64. #draggableHandle {
  65. cursor: move;
  66. margin-left: 18px;
  67. font-size: 16px;
  68. }
  69. .seat-item {
  70. display: none;
  71. padding: 0 20px;
  72. color: #7438D5;
  73. height: 44px;
  74. line-height: 44px;
  75. }
  76. .sortable-ghost .seat-item {
  77. display: block;
  78. }
  79. .sortable-ghost .become_register-contaoner {
  80. display: none;
  81. }
  82. .apply_protocol-select {
  83. color: #7438D5;
  84. cursor: pointer;
  85. margin-left: 20px;
  86. }
  87. .shopro-submit-container {
  88. display: flex;
  89. justify-content: flex-end;
  90. align-items: center;
  91. width: calc(100% - 30px);
  92. height: 60px;
  93. padding: 0 16px;
  94. position: fixed;
  95. bottom: 0px;
  96. right: 16px;
  97. background: #fff;
  98. }
  99. .shopro-submit-button {
  100. width: 88px;
  101. height: 36px;
  102. line-height: 36px;
  103. text-align: center;
  104. background: #7438D5;
  105. color: #fff;
  106. cursor: pointer;
  107. border-radius: 5px;
  108. }
  109. .shopro-default-button {
  110. width: 88px;
  111. height: 36px;
  112. line-height: 36px;
  113. text-align: center;
  114. cursor: pointer;
  115. border-radius: 5px;
  116. color: #7438D5;
  117. }
  118. .title-tip {
  119. color: #999;
  120. line-height: 13px;
  121. font-size: 13px;
  122. font-weight: 400;
  123. margin-top: 14px;
  124. }
  125. .bgimage-add-container {
  126. border: 1px solid #e6e6e6;
  127. width: 80px;
  128. height: 80px;
  129. border-radius: 5px;
  130. }
  131. .bgimage-add {
  132. width: 80px;
  133. height: 80px;
  134. display: flex;
  135. justify-content: center;
  136. align-items: center;
  137. font-size: 30px;
  138. color: #999;
  139. }
  140. .goods-add {
  141. width: 80px;
  142. height: 30px;
  143. border-radius: 4px;
  144. font-size: 13px;
  145. cursor: pointer;
  146. background: #7438D5;
  147. color: #fff;
  148. display: flex;
  149. justify-content: center;
  150. align-items: center;
  151. }
  152. .el-form-item__label,
  153. .el-radio__label,
  154. .el-input,
  155. .el-select-dropdown__item {
  156. font-size: 13px;
  157. }
  158. .form-group-area {
  159. padding-bottom: 10px;
  160. background: #f00;
  161. background: #FFFFFF;
  162. border-radius: 4px;
  163. margin-bottom: 10px;
  164. }
  165. .shopro-goods-header {
  166. height: 40px;
  167. display: flex;
  168. align-items: center;
  169. background: #f9f9f9;
  170. }
  171. .shopro-goods-body {
  172. height: 50px;
  173. display: flex;
  174. align-items: center;
  175. border-top: 1px solid #e6e6e6;
  176. }
  177. .shopro-goods-title {
  178. width: 280px;
  179. min-width: 280px;
  180. display: flex;
  181. height: 50px;
  182. align-items: center;
  183. padding: 0 20px;
  184. }
  185. .shopro-goods-stock {
  186. width: 120px;
  187. min-width: 120px;
  188. }
  189. .shopro-goods-opt {
  190. width: 160px;
  191. min-width: 160px;
  192. }
  193. .shopro-goods-image {
  194. width: 36px;
  195. height: 36px;
  196. border: 1px solid #E6E6E6;
  197. box-sizing: border-box;
  198. border-radius: 2px;
  199. margin-right: 12px
  200. }
  201. .shopro-goods-add-button {
  202. cursor: pointer;
  203. color: #7438D5;
  204. font-size: 13px;
  205. height: 50px;
  206. line-height: 50px;
  207. padding: 0 20px;
  208. }
  209. .shopro-goods-add-button i {
  210. margin-right: 6px;
  211. }
  212. .shopro-form-group-title-href,.shopro-form-group-title-href:hover,.shopro-form-group-title-href:focus{
  213. color: #7438D5;
  214. }
  215. .shopro-form-group-title-agreement{
  216. height: 38px;
  217. line-height: 38px;
  218. background: #F1EBFA;
  219. font-size: 12px;
  220. color: #444;
  221. padding: 0 20px;
  222. margin:0 20px 20px 32px;
  223. width: auto;
  224. display: flex;
  225. align-items: center;
  226. justify-content: space-between;
  227. border-radius: 4px;
  228. }
  229. .shopro-form-group-title-agreement i{
  230. color: #7438D5;
  231. }
  232. .shopro-form-group-title-1{
  233. margin-bottom: 10px;
  234. }
  235. .shopro-goods-id{
  236. width: 70px;
  237. padding: 0 10px;
  238. text-align: center;
  239. flex-shrink: 0;
  240. }
  241. .form-group-area-last{
  242. padding-bottom: 20px;
  243. }
  244. .become-register-row-item-esp{
  245. line-height: 32px;
  246. display: flex;
  247. align-items: center;
  248. }
  249. .el-dialog{
  250. width: 900px;
  251. }
  252. .el-dialog__wrapper{
  253. background: rgba(43, 43, 43, 0.05);
  254. backdrop-filter: blur(2px);
  255. }
  256. .configis-upgrade-image{
  257. width: 900px;
  258. height: 580px;
  259. background: #FFFFFF;
  260. border-radius: 4px;
  261. position: relative;
  262. }
  263. .configis-upgrade-image img{
  264. width: 100%;
  265. height: 100%;
  266. }
  267. .el-dialog__body{
  268. padding: 0;
  269. }
  270. .el-dialog__header{
  271. height: 0;
  272. padding: 0;
  273. }
  274. .configis-upgrade-button{
  275. position: absolute;
  276. bottom: 162px;
  277. right: 360px;
  278. }
  279. .configis-upgrade-button-upgrade{
  280. width: 110px;
  281. height: 34px;
  282. background: #8322FF;
  283. border-radius: 2px;
  284. justify-content: center;
  285. font-weight: bold;
  286. font-size: 12px;
  287. color: #FFFFFF;
  288. margin-left: 42px;
  289. cursor: pointer;
  290. }
  291. .configis-upgrade-button-upgrade .icon-right{
  292. margin-left: 12px;
  293. width: 18px;
  294. height: 18px;
  295. }
  296. .configis-upgrade-button-refresh{
  297. color: #86818E;
  298. font-size: 12px;
  299. cursor: pointer;
  300. }
  301. .configis-upgrade-button-refresh .el-icon-refresh-right{
  302. margin-right: 6px;
  303. font-size: 14px;
  304. }
  305. .configis-upgrade-close{
  306. position: absolute;
  307. top: 53px;
  308. right: 58px;
  309. font-size: 20px;
  310. color: #7F7A87;
  311. cursor: pointer;
  312. }
  313. [v-cloak] {
  314. display: none
  315. }
  316. </style>
  317. <script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
  318. <script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
  319. <script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
  320. <script src="__CDN__/assets/addons/shopro/libs/Sortable.min.js"></script>
  321. <script src="__CDN__/assets/addons/shopro/libs/vuedraggable.js"></script>
  322. <div id="indexPage" v-cloak v-loading="isAjax">
  323. <el-form :model="configData" ref="configData" label-width="148px" v-if="configData">
  324. <div class="form-group-area">
  325. <div class="shopro-form-group-title shopro-form-group-title-1">
  326. <div class="shopro-form-group-title-line"></div>基础设置
  327. </div>
  328. <div class="shopro-form-group-title-agreement" v-if="tipshow">
  329. <div>
  330. 设置分销时,请先了解<a class="shopro-form-group-title-href" href="https://www.spp.gov.cn/flfg/gfwj/201311/t20131122_64638.shtml" target="_blank" rel="noopener noreferrer">《关于办理组织领导传销活动刑事案件适用法律若干问题的意见》</a>
  331. </div>
  332. <i class="el-icon-close" @click="tipClose"></i>
  333. </div>
  334. <el-form-item label="分销层级:">
  335. <el-radio-group v-model="configData.commission_level">
  336. <el-radio label="0">关闭</el-radio>
  337. <el-radio label="1">一级</el-radio>
  338. <el-radio label="2">二级</el-radio>
  339. <el-radio label="3">三级</el-radio>
  340. </el-radio-group>
  341. <div class="title-tip">
  342. 默认佣金比例请到 分销等级 进行设置
  343. </div>
  344. </el-form-item>
  345. <el-form-item label="分销内购:">
  346. <el-radio-group v-model="configData.self_buy">
  347. <el-radio label="0">关闭</el-radio>
  348. <el-radio label="1">开启</el-radio>
  349. </el-radio-group>
  350. <div class="title-tip">
  351. 内购优惠开启后,分销商自己购买时,下单可以给自己返佣
  352. </div>
  353. </el-form-item>
  354. <el-form-item label="分销商锁定下线条件:">
  355. <el-radio-group v-model="configData.invite_lock">
  356. <el-radio label="share">点击分享链接</el-radio>
  357. <el-radio label="pay">首次支付</el-radio>
  358. <el-radio label="agent" :disabled="configData.become_agent.type=='child_user_count_1'">成为子分销商</el-radio>
  359. </el-radio-group>
  360. </el-form-item>
  361. <el-form-item label="分销商审核:">
  362. <el-radio-group v-model="configData.agent_check">
  363. <el-radio label="0">不需要</el-radio>
  364. <el-radio label="1">需要</el-radio>
  365. </el-radio-group>
  366. </el-form-item>
  367. <el-form-item label="越级升级:">
  368. <el-radio-group v-model="configData.upgrade_jump">
  369. <el-radio label="0">不允许</el-radio>
  370. <el-radio label="1">允许</el-radio>
  371. </el-radio-group>
  372. </el-form-item>
  373. <el-form-item label="升级审核:">
  374. <el-radio-group v-model="configData.upgrade_check">
  375. <el-radio label="0">不需要</el-radio>
  376. <el-radio label="1">需要</el-radio>
  377. </el-radio-group>
  378. </el-form-item>
  379. <!-- <el-form-item label="升级进度:">
  380. <el-radio-group v-model="configData.upgrade_display">
  381. <el-radio label="0">不显示</el-radio>
  382. <el-radio label="1">显示</el-radio>
  383. </el-radio-group>
  384. </el-form-item> -->
  385. </div>
  386. <div class="form-group-area">
  387. <div class="shopro-form-group-title">
  388. <div class="shopro-form-group-title-line"></div>默认分销商设置
  389. </div>
  390. <el-form-item label="成为分销商条件:">
  391. <el-radio-group v-model="configData.become_agent.type" @change="changeBecomeAgentType">
  392. <el-radio label="apply">自助申请</el-radio>
  393. <el-radio label="goods">购买任意商品</el-radio>
  394. <el-radio label="consume">消费累计</el-radio>
  395. <!-- <el-radio label="child_user_count_1" :disabled="configData.invite_lock=='agent'">邀请下级用户</el-radio> -->
  396. </el-radio-group>
  397. </el-form-item>
  398. <el-collapse-transition>
  399. <div v-if="configData.become_agent.type!='apply'">
  400. <el-form-item label="选择商品:" v-if="configData.become_agent.type=='goods'">
  401. <div class="display-flex">
  402. <div class="goods-add" style="margin: 5px 0;" @click="addGoods">{{configData.become_agent.value?'重新选择':'选择商品'}}
  403. </div>
  404. <!-- <div style="margin-left: 20px;">{{configData.become_agent.value}}</div> -->
  405. </div>
  406. <div style="max-width: 632px;border: 1px solid #e6e6e6;margin-top: 9px;" v-if="configData.become_agent.value">
  407. <div class="shopro-goods-header">
  408. <div class="shopro-goods-id">ID</div>
  409. <div class="shopro-goods-title">商品信息</div>
  410. <div class="shopro-goods-stock">库存</div>
  411. <div class="shopro-goods-opt">操作</div>
  412. </div>
  413. <div>
  414. <div class="shopro-goods-body" v-if="goods" v-for="(goods,gindex) in goodsDetail">
  415. <div class="shopro-goods-id">
  416. {{goods.id}}
  417. </div>
  418. <div class="shopro-goods-title">
  419. <div class="shopro-goods-image">
  420. <el-image v-if="goods.image" :src="Fast.api.cdnurl(goods.image)"
  421. fit="contain">
  422. <div slot="error" class="image-slot">
  423. <i class="el-icon-picture-outline"></i>
  424. </div>
  425. </el-image>
  426. </div>
  427. <div>
  428. <div class="ellipsis-item" style="width: 180px;height: 20px;line-height: 20px;">{{goods.title}}</div>
  429. <div style="height: 20px;line-height: 20px;">¥{{goods.price}}</div>
  430. </div>
  431. </div>
  432. <div class="shopro-goods-stock">
  433. {{goods.stock}}
  434. </div>
  435. <div class="shopro-goods-opt">
  436. <span class="become_register_delete" @click="deleteGoods(gindex)">删除</span>
  437. </div>
  438. </div>
  439. <div style="padding: 0 20px;" v-if="!goodsDetail">
  440. 商品不存在或已下架
  441. </div>
  442. </div>
  443. <!-- <div class="shopro-goods-body" v-if="!configData.become_agent.value">
  444. <div class="shopro-goods-add-button" @click="addGoods">
  445. <i class="el-icon-plus"></i>选择商品
  446. </div>
  447. </div> -->
  448. </div>
  449. </el-form-item>
  450. <el-form-item label="消费累计金额:" v-if="configData.become_agent.type=='consume'">
  451. <div class="display-flex" style="width: 320px;height: 40px;">
  452. <el-input v-model="configData.become_agent.value" size="small" type="number" v-enter-number>
  453. <template slot="append">元</template>
  454. </el-input>
  455. </div>
  456. </el-form-item>
  457. <el-form-item label="邀请下级用户满:" v-if="configData.become_agent.type=='child_user_count_1'">
  458. <div class="display-flex" style="width: 320px;height: 40px;">
  459. <el-input v-model="configData.become_agent.value" size="small" type="number">
  460. <template slot="append">人</template>
  461. </el-input>
  462. </div>
  463. </el-form-item>
  464. </div>
  465. </el-collapse-transition>
  466. <el-form-item label="完善资料:">
  467. <el-radio-group v-model="needAgentForm" @change="changeAgentForm">
  468. <el-radio label="0" :disabled="configData.become_agent.type=='apply'">不需要</el-radio>
  469. <el-radio label="1">需要</el-radio>
  470. </el-radio-group>
  471. <div class="title-tip">
  472. 成为分销商条件如果选择自助申请,完善资料必须选择需要
  473. </div>
  474. </el-form-item>
  475. <el-collapse-transition>
  476. <div v-if="needAgentForm == 1">
  477. <el-form-item label="表单背景图:">
  478. <div class="bgimage-add-container" @click="bgimageAdd">
  479. <el-image v-if="configData.agent_form.background_image"
  480. :src="Fast.api.cdnurl(configData.agent_form.background_image)" fit="contain">
  481. <div slot="error" class="image-slot">
  482. <i class="el-icon-picture-outline"></i>
  483. </div>
  484. </el-image>
  485. <div class="bgimage-add" v-if="!configData.agent_form.background_image">
  486. <i class="el-icon-plus"></i>
  487. </div>
  488. </div>
  489. </el-form-item>
  490. <el-form-item label="表单内容:">
  491. <div style="max-width: 632px;">
  492. <div style="border: 1px solid #e6e6e6;">
  493. <div class="become-register-row become-register-row-title">
  494. <div class="become-register-row-item">表单类型</div>
  495. <div class="become-register-row-item become-register-row-item-center">表单名称</div>
  496. <div class="become-register-row-item become-register-row-item-last">操作</div>
  497. </div>
  498. <draggable :list="configData.agent_form.content" v-bind="$attrs"
  499. :options="defaultOption"
  500. :style="{borderTop: configData.agent_form.content && configData.agent_form.content.length>0?'1px solid #e6e6e6':''}">
  501. <div class="become-register-row"
  502. v-for="(item,rindex) in configData.agent_form.content">
  503. <div class="seat-item">
  504. 可放在此处
  505. </div>
  506. <div class="become_register-contaoner">
  507. <div class="become-register-row-item become-register-row-item-esp">
  508. <el-select v-model="item.type" size="small">
  509. <el-option v-for="item in become_register_options" :key="item.value" :label="item.label" :value="item.value">
  510. </el-option>
  511. </el-select>
  512. </div>
  513. <div class="become-register-row-item become-register-row-item-center become-register-row-item-esp">
  514. <el-input v-model="item.name" size="small"></el-input>
  515. </div>
  516. <div class="become-register-row-item become-register-row-item-last">
  517. <span class="become_register_delete"
  518. @click="becomeRegisterDelete(rindex)">删除</span>
  519. <i id="draggableHandle" class="el-icon-rank"></i>
  520. <!-- <img
  521. src="/assets/addons/shopro/img/commission/move.png"> -->
  522. </div>
  523. </div>
  524. </div>
  525. </draggable>
  526. </div>
  527. <div>
  528. <div class="become_register_add-button" @click="becomeRegisterAdd">
  529. <i class="el-icon-plus"></i>追加
  530. </div>
  531. </div>
  532. </div>
  533. </el-form-item>
  534. <el-form-item label="申请协议:">
  535. <el-radio-group v-model="needApplyProtocol" @change="changeApplyProtocol">
  536. <el-radio label="0">不显示</el-radio>
  537. <el-radio label="1">显示</el-radio>
  538. </el-radio-group>
  539. </el-form-item>
  540. <el-collapse-transition>
  541. <div v-if="needApplyProtocol == 1">
  542. <el-form-item label="协议内容:">
  543. <div class="display-flex">
  544. <div style="width: 150px;line-height: 32px;">
  545. <el-input v-model="configData.apply_protocol.name" size="small"></el-input>
  546. </div>
  547. <div class="apply_protocol-select" @click="chooseRichText">选择</div>
  548. </div>
  549. </el-form-item>
  550. </div>
  551. </el-collapse-transition>
  552. </div>
  553. </el-collapse-transition>
  554. </div>
  555. <div class="form-group-area form-group-area-last">
  556. <div class="shopro-form-group-title">
  557. <div class="shopro-form-group-title-line"></div>结算条件
  558. </div>
  559. <el-form-item label="商品结算方式:">
  560. <el-radio-group v-model="configData.commission_price_type">
  561. <el-radio label="goods_price">商品价</el-radio>
  562. <el-radio label="pay_price">实际支付价</el-radio>
  563. </el-radio-group>
  564. <div class="title-tip">
  565. 商品价: 商品实际售价/规格价,实际支付价: 实际支付的费用(不含运费)
  566. </div>
  567. </el-form-item>
  568. <el-form-item label="佣金结算方式:">
  569. <el-radio-group v-model="configData.commission_event">
  570. <el-radio label="payed">支付后结算</el-radio>
  571. <el-radio label="confirm">确认收货结算</el-radio>
  572. <el-radio label="finish">订单完成结算</el-radio>
  573. <el-radio label="admin">手动打款</el-radio>
  574. </el-radio-group>
  575. </el-form-item>
  576. <el-form-item label="退款扣除佣金:">
  577. <el-radio-group v-model="configData.refund_commission_reward">
  578. <el-radio label="0">不扣除</el-radio>
  579. <el-radio label="1">扣除</el-radio>
  580. </el-radio-group>
  581. </el-form-item>
  582. <el-form-item label="退款扣除分销业绩:">
  583. <el-radio-group v-model="configData.refund_commission_order">
  584. <el-radio label="0">不扣除</el-radio>
  585. <el-radio label="1">扣除</el-radio>
  586. </el-radio-group>
  587. </el-form-item>
  588. </div>
  589. </el-form>
  590. <div class="shopro-submit-container">
  591. <div class="shopro-default-button" @click="formRestore">重置</div>
  592. <div class="shopro-submit-button" @click="formSubmit">保存</div>
  593. </div>
  594. <el-dialog
  595. :visible.sync="configis_upgrade">
  596. <div class="configis-upgrade-image">
  597. <img src="/assets/addons/shopro/img/commission/upgrade-config.png">
  598. <div class="configis-upgrade-close" @click="operation('close')"><i class="el-icon-error"></i></div>
  599. <div class="configis-upgrade-button display-flex">
  600. <div class="configis-upgrade-button-refresh" @click="operation('refresh')"><i class="el-icon-refresh-right"></i>刷新</div>
  601. <div class="configis-upgrade-button-upgrade display-flex" @click="operation('upgrade')">去升级
  602. <img class="icon-right" src="/assets/addons/shopro/img/commission/icon-right.png">
  603. </div>
  604. </div>
  605. </div>
  606. </el-dialog>
  607. </div>