index.php 105 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. $diyPath = dirname(__DIR__) . '/components';
  4. ComponentHelper::loadComponentView('cloud_inventory_goods_select', $diyPath);
  5. ComponentHelper::loadComponentView('com-dialog-select');
  6. ComponentHelper::loadComponentView('com-select-cat');
  7. ComponentHelper::loadComponentView('com-image');
  8. ComponentHelper::loadComponentView('free-goods-choice', $diyPath);
  9. ComponentHelper::loadComponentView('com-rich-text');
  10. ?>
  11. <div id="app" v-cloak>
  12. <el-card class="box-card" v-loading="loading" shadow="never" style="border:0;min-width: 1500px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  13. <div slot="header">
  14. <div>
  15. <span>基础设置</span>
  16. </div>
  17. </div>
  18. <div class="form_box">
  19. <el-tabs v-model="activeName" type="card">
  20. <el-tab-pane label="基础设置" name="first">
  21. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="150px">
  22. <el-card shadow="never">
  23. <div slot="header">
  24. <div>
  25. <span>基础设置</span>
  26. </div>
  27. </div>
  28. <div>
  29. <el-row>
  30. <el-col :span="16">
  31. <el-form-item label="启用云库存" style="margin-bottom: 10px">
  32. <div>
  33. <el-switch v-model="settingData.is_enable" :active-value="1" :inactive-value="0">
  34. </el-switch>
  35. </div>
  36. </el-form-item>
  37. <el-form-item v-if="is_install_wangdiantong == 1" label="旺店通发货" style="margin-bottom: 10px">
  38. <el-switch v-model="settingData.is_enable_wangdiantong" :active-value="1" :inactive-value="0">
  39. </el-switch>
  40. <p style="color: #999999">开启当前开关那么用户提货到线下的订单均有旺店通进行发货处理</p>
  41. </el-form-item>
  42. <el-form-item label="允许限时补货" style="margin-bottom: 10px">
  43. <div>
  44. <el-switch
  45. v-model="settingData.is_time_limit_fill"
  46. :active-value="1"
  47. :inactive-value="0"
  48. >
  49. </el-switch>
  50. </div>
  51. <div class="tips-text" style="line-height: 24px;">
  52. 开启允许限时补货,下级用户在上级没有库存的情况下补货,设置上级补货时限
  53. </div>
  54. </el-form-item>
  55. <el-form-item label="是否显示我的设置" style="margin-bottom: 10px">
  56. <div>
  57. <el-switch
  58. v-model="settingData.is_show_setting"
  59. :active-value="1"
  60. :inactive-value="0"
  61. >
  62. </el-switch>
  63. </div>
  64. <div class="tips-text" style="line-height: 24px;">
  65. 开启后,前端显示我的设置
  66. </div>
  67. </el-form-item>
  68. <el-form-item label="前端用户库存权限" style="margin-bottom: 10px" v-if="settingData.is_show_setting">
  69. <div>
  70. <el-switch
  71. v-model="settingData.is_show_stock_permission"
  72. :active-value="1"
  73. :inactive-value="0"
  74. >
  75. </el-switch>
  76. </div>
  77. <div class="tips-text" style="line-height: 24px;">
  78. 开启后,支持配置控制我的库存是否允许被下级买货或补货扣除
  79. </div>
  80. </el-form-item>
  81. <el-form-item prop="temp_fill_time" label="补货限时" v-if="settingData.is_time_limit_fill">
  82. <el-col :span="8" style="width: 100%;">
  83. <el-input v-model="settingData.fill_hour"
  84. type="number" style="width: 200px;">
  85. <template slot="append">小时</template>
  86. </el-input>
  87. <div class="tips-text" style="line-height: 24px;">
  88. 当代理商库存不足时,给他通知库存预警,及时补货。如不及时补货,则扣去上级代理商库存。
  89. </div>
  90. </el-col>
  91. </el-form-item>
  92. <el-form-item label="奖励分配" style="margin-bottom: 10px">
  93. <div>
  94. <template>
  95. <el-radio v-model="settingData.bonus" label="platform">平台</el-radio>
  96. <el-radio v-model="settingData.bonus" label="payment">从货款中扣除</el-radio>
  97. </template>
  98. </div>
  99. <div class="tips-text" style="line-height: 24px;">
  100. 奖励分配选择由平台或者上级代理给奖励,奖励包含平级奖,越级奖。
  101. </div>
  102. </el-form-item>
  103. <el-form-item label="补货奖励" style="margin-bottom: 10px">
  104. <div>
  105. <template>
  106. <el-radio v-model="settingData.fill_bonus" label="0">平台</el-radio>
  107. <el-radio v-model="settingData.fill_bonus" label="1">从货款中扣除</el-radio>
  108. </template>
  109. </div>
  110. <div class="tips-text" style="line-height: 24px;">
  111. 补货奖励选择由平台或者上级代理给奖励
  112. </div>
  113. </el-form-item>
  114. <el-form-item label="下级送名额" style="margin-bottom: 10px">
  115. <div>
  116. <template>
  117. <el-radio v-model="settingData.is_give_quota" :label="1">开启</el-radio>
  118. <el-radio v-model="settingData.is_give_quota" :label="0">关闭</el-radio>
  119. </template>
  120. </div>
  121. <div class="tips-text" style="line-height: 24px;">
  122. 升级代理商是否赠送代理商名额
  123. </div>
  124. </el-form-item>
  125. <el-form-item label="扣产品" style="margin-bottom: 10px" v-if="settingData.is_give_quota==1">
  126. <div>
  127. <template>
  128. <el-switch v-model="settingData.is_deduct_goods" :active-value="1" :inactive-value="0"></el-switch>
  129. </template>
  130. </div>
  131. <div class="tips-text" style="line-height: 24px;">
  132. 赠送名额是否扣除对应名额产品
  133. </div>
  134. </el-form-item>
  135. <el-form-item label="消息通知" style="margin-bottom: 10px">
  136. <div>
  137. <el-switch v-model="settingData.is_notice" :active-value="1" :inactive-value="0">
  138. </el-switch>
  139. </div>
  140. </el-form-item>
  141. <el-form-item label="同步分销商奖励" style="margin-bottom: 10px;" >
  142. <div>
  143. <el-switch v-model="settingData.is_sync_distribution_level" :active-value="1" :inactive-value="0">
  144. </el-switch>
  145. </div>
  146. <div class="tips-text" style="line-height: 24px;">
  147. 开启即享受分销商的分润,不是同步升级
  148. </div>
  149. </el-form-item>
  150. <el-form-item label="同步股东分红" style="margin-bottom: 10px;" >
  151. <div>
  152. <el-switch v-model="settingData.is_sync_boss_bonus" :active-value="1" :inactive-value="0">
  153. </el-switch>
  154. </div>
  155. <div class="tips-text" style="line-height: 24px;">
  156. 开启后,向平台补货,可享受股东分红
  157. </div>
  158. </el-form-item>
  159. <el-form-item label="自取订单区域分红" style="margin-bottom: 10px;" >
  160. <div>
  161. <el-switch v-model="settingData.is_sync_area_reward" :active-value="1" :inactive-value="0">
  162. </el-switch>
  163. </div>
  164. <div class="tips-text" style="line-height: 24px;">
  165. 开启即享受区域管理的分润
  166. </div>
  167. </el-form-item>
  168. <el-form-item label="扣除分佣" >
  169. <template v-for="(item,index) in settingData.deduction_commission_arr">
  170. <el-switch v-model="item.is_open" :active-value="1" :inactive-value="0" ></el-switch>
  171. {{item.title}}
  172. &nbsp;&nbsp;&nbsp;&nbsp;
  173. </template>
  174. </el-form-item>
  175. <el-form-item label="升级礼包升级商品扣货逻辑" style="margin-bottom: 10px;width:600px;" label-width="150" class="myFormItem">
  176. <div>
  177. <template>
  178. <el-radio v-model="settingData.upgrade_bag_product_deduction" :label="0">上级代理</el-radio>
  179. <el-radio v-model="settingData.upgrade_bag_product_deduction" :label="1">指定等级代理</el-radio>
  180. </template>
  181. </div>
  182. </el-form-item>
  183. <el-form-item label="指定等级代理" style="margin-bottom: 10px" v-if="settingData.upgrade_bag_product_deduction==1">
  184. <div>
  185. <template>
  186. <el-select v-model="settingData.upgrade_bag_product_deduction_level" placeholder="请选择指定等级代理">
  187. <el-option
  188. v-for="item in level_list"
  189. :key="item.level"
  190. :label="item.name"
  191. :value="item.level"
  192. >
  193. </el-option>
  194. </el-select>
  195. </template>
  196. </div>
  197. </el-form-item>
  198. <el-form-item label="升级礼包赠送库存从上级代理扣除" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  199. <div>
  200. <el-switch v-model="settingData.level_up_give_stock_by_parent" :active-value="1" :inactive-value="0"></el-switch>
  201. </div>
  202. </el-form-item>
  203. <br/>
  204. <el-form-item label="扣库存按补货" v-if="settingData.level_up_give_stock_by_parent>0" >
  205. <div>
  206. <el-switch v-model="settingData.level_up_give_stock_by_parent_type" :active-value="1" :inactive-value="0" @change="levelUpGiveStockByParentType"></el-switch>
  207. </div>
  208. <div class="tips-text" style="line-height: 24px;">
  209. 开启:升级礼包赠送库存从上级代理扣除,按代理商补货操作逻辑(如同会员在前端h5执行补货操作),生成补货单。<br/>
  210. 关闭:升级礼包赠送库存从上级代理扣除,不生成补货单,被扣库存会员的库存数量必须大于等于赠送的库存数量,才能完成扣库存,货款按礼包支付金额结算。
  211. </div>
  212. </el-form-item>
  213. <el-form-item label="是否开启补货升级礼包商品,升级限制" style="margin-bottom: 10px;" label-width="150" class="myFormItem">
  214. <div>
  215. <el-switch v-model="settingData.upgrade_bag_product_up_limit" :active-value="1" :inactive-value="0"></el-switch>
  216. </div>
  217. <div class="tips-text" style="line-height: 24px;">
  218. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  219. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  220. 开启后,通过补货途径购买升级礼包商品,不进行升级
  221. </div>
  222. </el-form-item>
  223. <el-form-item label="开启货款不计入佣金" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  224. <div>
  225. <el-switch v-model="settingData.payment_is_not_in_commission" :active-value="1" :inactive-value="0"></el-switch>
  226. </div>
  227. </el-form-item>
  228. <br/>
  229. <el-form-item label="拿货价计入货款,差价计入佣金"
  230. style="margin-bottom: 10px;width:300px;" label-width="150"
  231. class="myFormItem"
  232. v-if="settingData.payment_is_not_in_commission==1">
  233. <div>
  234. <el-switch v-model="settingData.profit_in_commission"
  235. :active-value="1" :inactive-value="0"></el-switch>
  236. </div>
  237. </el-form-item>
  238. <br/>
  239. <el-form-item label="是否开启货款提现" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  240. <div>
  241. <el-switch v-model="settingData.payment_withdraw" :active-value="1" :inactive-value="0"></el-switch>
  242. </div>
  243. </el-form-item>
  244. <br/>
  245. <el-form-item label="货款提现手续费" v-if="settingData.payment_withdraw==1">
  246. <el-input class="member-money" v-model="settingData.payment_withdraw_poundage" placeholder="" onInput="value=toNumber(value,2)"
  247. style="width: 150px">
  248. <template slot="append">%</template>
  249. </el-input>
  250. </el-form-item>
  251. <el-form-item label="提现方式" prop="settingData.withdraw_cash_type" v-if="settingData.payment_withdraw==1">
  252. <el-col :span="12">
  253. <el-checkbox-group v-model="settingData.withdraw_cash_type">
  254. <el-checkbox v-for="(value, key) in withdraw_way" :key="key" :label="key">{{value}}</el-checkbox>
  255. </el-checkbox-group>
  256. <div class="tips-text"></div>
  257. </el-col>
  258. </el-form-item>
  259. <el-form-item label="是否开启货款转余额" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  260. <div>
  261. <el-switch v-model="settingData.payment_to_balance" :active-value="1" :inactive-value="0"></el-switch>
  262. </div>
  263. </el-form-item>
  264. <br/>
  265. <el-form-item label="转余额手续费" v-if="settingData.payment_to_balance==1">
  266. <el-input class="member-money" v-model="settingData.payment_to_balance_poundage" placeholder="" onInput="value=toNumber(value,2)"
  267. style="width: 150px">
  268. <template slot="append">%</template>
  269. </el-input>
  270. </el-form-item>
  271. <el-form-item label="升级礼包扣除分佣" v-if="settingData.level_up_give_stock_by_parent_type==0&&settingData.level_up_give_stock_by_parent>0">
  272. <div>
  273. <el-switch v-model="settingData.level_up_give_deduction_commission_arr" :active-value="1" :inactive-value="0"></el-switch>
  274. </div>
  275. <div class="tips-text" style="line-height: 24px;">
  276. 开启后,由上级获得货款云仓代理,就需要承担云仓升级礼包的团队分红的奖金,如果是平台获得货款就由平台来承担奖励
  277. </div>
  278. </el-form-item>
  279. <br/>
  280. <el-form-item label="补货差价" >
  281. <div>
  282. <el-switch v-model="settingData.fill_price_difference" :active-value="1" :inactive-value="0"></el-switch>
  283. </div>
  284. <div class="tips-text" style="line-height: 24px;">
  285. 补货时,代理有货,拿货款;无货,拿补货差价;奖励分配、补货奖励,选择从货款中扣除时,该奖励从差价扣除
  286. </div>
  287. </el-form-item>
  288. <el-form-item label="会员买货差价" >
  289. <div>
  290. <el-switch v-model="settingData.buy_price_difference" :active-value="1" :inactive-value="0"></el-switch>
  291. </div>
  292. <div class="tips-text" style="line-height: 24px;">
  293. 会员买货时,代理有货,拿货款;无货,拿进货差价
  294. </div>
  295. </el-form-item>
  296. <el-form-item label="差价结算类型" style="margin-bottom: 10px">
  297. <div>
  298. <template>
  299. <el-radio v-model="settingData.price_difference_type" :label="0">首个代理拿差价</el-radio>
  300. <el-radio v-model="settingData.price_difference_type" :label="1">所有代理拿差价</el-radio>
  301. <el-radio v-model="settingData.price_difference_type" :label="2">
  302. 校验有代理库存
  303. </el-radio>
  304. </template>
  305. </div>
  306. </el-form-item>
  307. <el-form-item label="货款差价" v-if="settingData.price_difference_type==2">
  308. <div>
  309. <el-switch v-model="settingData.payment_for_goods_price_difference"
  310. :active-value="1"
  311. :inactive-value="0"></el-switch>
  312. </div>
  313. <div class="tips-text" style="line-height: 24px;">
  314. 开启,差价修改为结算货款者还可拿到差价
  315. </div>
  316. </el-form-item>
  317. <el-form-item label="差价平级奖">
  318. <div>
  319. <el-switch v-model="settingData.is_difference_equal" :active-value="1" :inactive-value="0"></el-switch>
  320. </div>
  321. </el-form-item>
  322. <el-form-item label="差价平级奖紧缩" v-if="settingData.is_difference_equal == 1">
  323. <div>
  324. <el-switch v-model="settingData.is_find_equal" :active-value="1"
  325. :inactive-value="0"></el-switch>
  326. </div>
  327. </el-form-item>
  328. <el-form-item label="差价平级奖分配" style="margin-bottom: 10px" v-if="settingData.is_difference_equal == 1">
  329. <div>
  330. <template>
  331. <el-radio v-model="settingData.difference_equal_type" :label="0">平台</el-radio>
  332. <el-radio v-model="settingData.difference_equal_type" :label="1">差价</el-radio>
  333. </template>
  334. </div>
  335. </el-form-item>
  336. <el-form-item label="同步渠道分红等级" style="margin-bottom: 10px;" >
  337. <div>
  338. <el-switch v-model="settingData.is_sync_agent_level" :active-value="1" :inactive-value="0">
  339. </el-switch>
  340. </div>
  341. <div class="tips-text" style="line-height: 24px;">
  342. 开启,渠道分红升级后,云库存代理等级权重与之相同,云库存代理也能升级
  343. </div>
  344. </el-form-item>
  345. <el-form-item prop="compute_delay_day" label="货款结算方式">
  346. <el-col :span="8" style="width: 100%;">
  347. <el-radio-group v-model="settingData.compute_type" size="small">
  348. <el-radio :label="0" border>订单完成后</el-radio>
  349. <el-radio :label="1" border>订单支付后</el-radio>
  350. </el-radio-group>
  351. <div class="input-number-box">
  352. <span>延时</span>
  353. <el-input-number size="small" v-model="settingData.compute_delay_day" :step="1" step-strictly :min="0" :max="30" label="延时天数"></el-input-number>
  354. <span>天后结算</span>
  355. </div>
  356. </el-col>
  357. <div class="tips-text" style="line-height: 24px;">
  358. 默认“0”天表示“不延时结算/立即结算”,“订单完成后/订单支付后”结算方式只针对“用户买货订单”,补货订单“支付后”即“订单完成”
  359. </div>
  360. </el-form-item>
  361. <el-form-item label="购买二二复制商品" style="margin-bottom: 10px">
  362. <div>
  363. <template>
  364. <el-radio v-model="settingData.buy_double_copy_goods_dec_cloud_stock_goods" :label="0">设置数量</el-radio>
  365. <el-radio v-model="settingData.buy_double_copy_goods_dec_cloud_stock_goods" :label="1">购买件数</el-radio>
  366. </template>
  367. </div>
  368. <div class="tips-text" style="line-height: 24px;">
  369. 购买二二复制商品,扣云库存数量:购买件数,即扣库存数量,按订单对应商品购买数量,否则按设置数量
  370. </div>
  371. </el-form-item>
  372. <el-form-item label="赠送方案赠送商品时间" style="margin-bottom: 10px">
  373. <div>
  374. <template>
  375. <el-radio v-model="settingData.gift_plan_give_type" :label="0">订单完成</el-radio>
  376. <el-radio v-model="settingData.gift_plan_give_type" :label="1">支付完成</el-radio>
  377. </template>
  378. </div>
  379. <div class="tips-text" style="line-height: 24px; color: red">
  380. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  381. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  382. 请谨慎使用,防止用户退款场景
  383. </div>
  384. </el-form-item>
  385. <el-form-item label="平级奖结算周期" style="margin-bottom: 10px">
  386. <div>
  387. <template>
  388. <el-radio v-model="settingData.settlement_cycle_of_equal_prize"
  389. :label="0">立即结算
  390. </el-radio>
  391. <el-radio v-model="settingData.settlement_cycle_of_equal_prize"
  392. :label="1">周
  393. </el-radio>
  394. <el-radio v-model="settingData.settlement_cycle_of_equal_prize"
  395. :label="2">月
  396. </el-radio>
  397. </template>
  398. </div>
  399. <div class="tips-text" style="line-height: 24px; color: #baabab">
  400. 1.只控制上级配货和下级补货产生的平级奖的结算周期,不控制差价平级奖<br/>
  401. 2.按周进行结算,则自然周的星期一00:00进行结算。<br/>
  402. 3.按月进行结算,则每个月的1号00:00进行结算
  403. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  404. </div>
  405. </el-form-item>
  406. <el-form-item label="越级奖按照补货者的等级去进行奖励" style="margin-bottom: 10px">
  407. <div>
  408. <el-switch v-model="settingData.is_by_buy_agent_level" :active-value="1" :inactive-value="0">
  409. </el-switch>
  410. </div>
  411. </el-form-item>
  412. </el-col>
  413. </el-row>
  414. </div>
  415. </el-card>
  416. </el-form>
  417. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  418. @click="saveFun" size="small">保存
  419. </el-button>
  420. </el-tab-pane>
  421. <el-tab-pane label="补货奖励" name="second">
  422. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="100px">
  423. <el-card shadow="never">
  424. <div slot="header">
  425. <div>
  426. <span>个人团队补货奖励设置</span>
  427. </div>
  428. </div>
  429. <div>
  430. <el-row>
  431. <el-col :span="16">
  432. <el-form-item label="奖励方式" style="margin-bottom: 10px">
  433. <div>
  434. <template>
  435. <el-radio v-model="settingData.award_proportion_reward_type" :label="0">实时统计结算</el-radio>
  436. <el-radio v-model="settingData.award_proportion_reward_type" :label="1">阶梯清零结算</el-radio>
  437. </template>
  438. </div>
  439. </el-form-item>
  440. <el-form-item label="清零方式" style="margin-bottom: 10px" v-if="settingData.award_proportion_reward_type == 1">
  441. <div>
  442. <template>
  443. <el-radio v-model="settingData.award_proportion_clear_type" :label="0">年度</el-radio>
  444. </template>
  445. </div>
  446. </el-form-item>
  447. <el-form-item label="代理等级">
  448. <el-select v-model="settingData.cloud_stock_level_arr" multiple placeholder="请选择代理等级">
  449. <el-option
  450. v-for="item in level_list"
  451. :key="item.level"
  452. :label="item.name"
  453. :value="item.level"
  454. >
  455. </el-option>
  456. </el-select>
  457. </el-form-item>
  458. <el-form-item label="分红池等级">
  459. <el-select v-model="settingData.cloud_stock_bonus_level_arr" multiple placeholder="请选择分红池等级">
  460. <el-option
  461. v-for="item in bonus_level_list"
  462. :key="item.level"
  463. :label="item.name"
  464. :value="item.level"
  465. >
  466. </el-option>
  467. </el-select>
  468. </el-form-item>
  469. <el-form-item label="云仓商品">
  470. <div style="display: inline-block;">
  471. <div flex="cross:center">
  472. <div style="margin-left: 10px;">
  473. <free-goods-choice :multiple="true" @selected="goodsSelect2"
  474. title="商品选择">
  475. <el-button type="primary">选择商品</el-button>
  476. </free-goods-choice>
  477. </div>
  478. </div>
  479. </div>
  480. </el-form-item>
  481. <el-form-item :label-width="formLabelWidth" v-if="team_reward_goods_list.length>0">
  482. <template >
  483. <div style="color: #ff4544;">最多可添加99个商品</div>
  484. <div class="table-body" style="padding-left: 0;padding-top: 0;">
  485. <template>
  486. <el-table :data="team_reward_goods_list" border style="width: 100%">
  487. <el-table-column type="index" label="序号" width="50"></el-table-column>
  488. <el-table-column prop="id" label="商品id" width="100"></el-table-column>
  489. <el-table-column prop="name,cover_pic" label="商品名称" >
  490. <template slot-scope="scope">
  491. <div flex="box:first">
  492. <div style="padding-right: 10px;">
  493. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  494. </div>
  495. <div flex="cross:top cross:center">
  496. {{scope.row.name}}
  497. </div>
  498. </div>
  499. </template>
  500. </el-table-column>
  501. <el-table-column label="操作" width="100">
  502. <template slot-scope="scope">
  503. <el-button @click="deleteGoods2(scope.$index)" size="mini">删除</el-button>
  504. </template>
  505. </el-table-column>
  506. </el-table>
  507. </template>
  508. </div>
  509. </template>
  510. </el-form-item>
  511. <el-form-item label="计算方式" style="margin-bottom: 10px">
  512. <div>
  513. <template>
  514. <el-radio v-model="settingData.award_proportion_calculate_type" :label="0">按数量统计结算</el-radio>
  515. <el-radio v-model="settingData.award_proportion_calculate_type" :label="1">按业绩统计结算</el-radio>
  516. </template>
  517. </div>
  518. </el-form-item>
  519. <el-form-item label="个人团队补货奖励">
  520. <el-form-item v-for="(item,index) in settingData.award_proportion" :key='index' class="coupon-item" style="display: flex;align-items: center;">
  521. <el-input type="number" :min="0" class="member-money" v-model="item.num" placeholder="" style="width: 400px">
  522. <template slot="prepend">出货量达到</template>
  523. <template v-if="settingData.award_proportion_calculate_type == 1" slot="append">元</template>
  524. <template v-else slot="append">支</template>
  525. </el-input>
  526. <el-input type="number" :min="0" :max="100" class="member-money" v-model="item.money" placeholder="" style="width: 260px;">
  527. <template slot="prepend">奖励</template>
  528. <template v-if="settingData.award_proportion_calculate_type == 1" slot="append">%</template>
  529. <template v-else slot="append">元/每支</template>
  530. </el-input>
  531. <el-button v-if="settingData.award_proportion.length>1" size="mini" type="danger"
  532. icon="el-icon-close" circle
  533. @click="delItem(index)"></el-button>
  534. </el-form-item>
  535. </el-form-item>
  536. <el-form-item>
  537. <el-button v-if="settingData.award_proportion && settingData.award_proportion.length<36" style="margin-bottom: 10px;" type="primary" size="small" @click="addCouponItem">添加奖励区间
  538. </el-button>
  539. </el-form-item>
  540. <el-form-item label="统计平级两层的盒数算阶梯" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  541. <div>
  542. <el-switch v-model="settingData.is_equal_2_step" :active-value="1" :inactive-value="0"></el-switch>
  543. </div>
  544. </el-form-item>
  545. <el-form-item label="结算方式" style="margin-bottom: 10px">
  546. <div>
  547. <template>
  548. <el-radio v-model="settingData.award_proportion_settlement_type" :label="0">月</el-radio>
  549. <el-radio v-model="settingData.award_proportion_settlement_type" :label="1">季度</el-radio>
  550. <!-- <el-radio v-model="settingData.award_proportion_settlement_type" :label="2">年度</el-radio> -->
  551. </template>
  552. </div>
  553. </el-form-item>
  554. <el-form-item label="升级礼包赠送的商品计算补货盒数" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  555. <div>
  556. <el-switch v-model="settingData.is_upgrade_bag_give_goods" :active-value="1" :inactive-value="0"></el-switch>
  557. </div>
  558. </el-form-item>
  559. <!-- <el-form-item label="仅向平台补货计算业绩" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  560. <div>
  561. <el-switch v-model="settingData.award_proportion_by_platform" :active-value="1" :inactive-value="0"></el-switch>
  562. </div>
  563. </el-form-item> -->
  564. </el-col>
  565. </el-row>
  566. </div>
  567. </el-card>
  568. </el-form>
  569. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  570. @click="saveFun" size="small">保存
  571. </el-button>
  572. </el-tab-pane>
  573. <el-tab-pane label="云仓配货" name="seven">
  574. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="200px">
  575. <el-form-item label="云仓配货是否触发平级奖" style="margin-bottom: 10px">
  576. <div>
  577. <el-switch v-model="settingData.is_trigger_level_award" :active-value="1"
  578. :inactive-value="0">
  579. </el-switch>
  580. </div>
  581. </el-form-item>
  582. <el-form-item label="是否开启云仓配货协议" style="margin-bottom: 10px">
  583. <div>
  584. <el-switch v-model="settingData.is_show_agreement_content" :active-value="1"
  585. :inactive-value="0">
  586. </el-switch>
  587. </div>
  588. </el-form-item>
  589. <el-form-item label="协议内容" label-width="200px" prop="content">
  590. <com-rich-text v-model="settingData.agreement_content"></com-rich-text>
  591. </el-form-item>
  592. </el-form>
  593. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  594. @click="saveFun" size="small">保存
  595. </el-button>
  596. </el-tab-pane>
  597. <el-tab-pane label="分红池" name="three">
  598. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="100px">
  599. <el-card shadow="never">
  600. <div slot="header">
  601. <div>
  602. <span>分红池</span>
  603. </div>
  604. </div>
  605. <div>
  606. <el-row>
  607. <el-col :span="16">
  608. <el-form-item label="结算方式" style="margin-bottom: 10px">
  609. <div>
  610. <template>
  611. <el-radio v-model="settingData.pool_settlement_type" :label="0">月</el-radio>
  612. <el-radio v-model="settingData.pool_settlement_type" :label="1">季度</el-radio>
  613. </template>
  614. </div>
  615. </el-form-item>
  616. <el-form-item label="升级礼包赠送的商品计算补货盒数" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  617. <div>
  618. <el-switch v-model="settingData.is_upgrade_bag_give_goods_pool" :active-value="1" :inactive-value="0"></el-switch>
  619. </div>
  620. </el-form-item>
  621. <el-form-item label="叠加分红" style="margin-bottom: 10px;width:300px;" label-width="150" class="myFormItem">
  622. <div>
  623. <el-switch v-model="settingData.is_superposition" :active-value="1" :inactive-value="0"></el-switch>
  624. </div>
  625. </el-form-item>
  626. </el-col>
  627. </el-row>
  628. </div>
  629. </el-card>
  630. </el-form>
  631. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  632. @click="saveFun" size="small">保存
  633. </el-button>
  634. </el-tab-pane>
  635. <el-tab-pane label="短信模板" name="four">
  636. <el-table
  637. stripe
  638. :data="list"
  639. style="width: 600px"
  640. v-loading="loading">
  641. <el-table-column
  642. align="center"
  643. prop="temp_name"
  644. label="短信模板名称"
  645. min-width="200">
  646. </el-table-column>
  647. <el-table-column
  648. align="center"
  649. label="操作"
  650. min-width="200"
  651. >
  652. <template slot-scope="scope">
  653. <el-button circle size="mini" type="text" @click="editClick(scope.row)">
  654. <el-tooltip class="item" effect="dark" content="编辑" placement="top">
  655. <img src="resources/img/mall/edit.png" alt="">
  656. </el-tooltip>
  657. </el-button>
  658. </template>
  659. </el-table-column>
  660. </el-table>
  661. </el-tab-pane>
  662. <el-tab-pane label="更多设置" name="five">
  663. <el-form :model="ruleForm" size="small" ref="ruleForm" label-width="155px">
  664. <el-card shadow="never">
  665. <div slot="header">
  666. <div>
  667. <span>随机减设置</span>
  668. </div>
  669. </div>
  670. <div>
  671. <el-row>
  672. <el-col :span="16">
  673. <div class="condition">
  674. <el-form-item label="是否启用条件" style="margin-bottom: 10px">
  675. <div>
  676. <el-switch v-model="settingData.is_enable_rand_fee" :active-value="1" :inactive-value="0">
  677. </el-switch>
  678. </div>
  679. </el-form-item>
  680. <template v-if="settingData.is_enable_rand_fee == 1">
  681. <el-form-item label="订单满" v-for="(item, key) in settingData.rand_condition" :key=""key>
  682. <el-col :span="4">
  683. <el-form-item>
  684. <el-input oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入内容" v-model="item.total_price">
  685. <template slot="append">元</template>
  686. </el-input>
  687. </el-form-item>
  688. </el-col>
  689. <el-col :span="1">减</el-col>
  690. <el-col :span="4">
  691. <el-form-item>
  692. <el-input oninput="value=value.replace(/[^0-9.]/g,'')" type="text" v-model="item.rand_min" placeholder="">
  693. <template slot="append">元</template>
  694. </el-input>
  695. </el-form-item>
  696. </el-col>
  697. <el-col :span="1">~</el-col>
  698. <el-col :span="4">
  699. <el-form-item>
  700. <el-input oninput="value=value.replace(/[^0-9.]/g,'')" type="text" v-model="item.rand_max" placeholder="">
  701. <template slot="append">元</template>
  702. </el-input>
  703. </el-form-item>
  704. </el-col>
  705. <el-col :span="2">
  706. <span @click="delCondition(key)" class="del-condition">删除</span>
  707. </el-col>
  708. <br/>
  709. <div class="tips-text" style="line-height: 24px;">
  710. 可设置阶梯式减免区间
  711. </div>
  712. </el-form-item>
  713. <el-form-item label="">
  714. <el-button class="button-item" type="primary" @click="addCondition" size="small" v-if="addBtn">添加条件</el-button>
  715. <br/>
  716. <div class="tips-text" style="line-height: 24px;">
  717. 增加新规则
  718. </div>
  719. </el-form-item>
  720. </template>
  721. </div>
  722. </el-col>
  723. </el-row>
  724. </div>
  725. </el-card>
  726. <el-card shadow="never">
  727. <div slot="header">
  728. <div>
  729. <span>运费设置</span>
  730. </div>
  731. </div>
  732. <div>
  733. <el-row>
  734. <el-col :span="16">
  735. <div class="condition">
  736. <el-form-item label="是否启用运费" style="margin-bottom: 10px">
  737. <div>
  738. <el-switch v-model="settingData.is_enable_freight_charges" :active-value="1" :inactive-value="0">
  739. </el-switch>
  740. </div>
  741. </el-form-item>
  742. </div>
  743. </el-col>
  744. </el-row>
  745. </div>
  746. </el-card>
  747. <el-card shadow="never">
  748. <div slot="header">
  749. <div>
  750. <span>自提订单设置</span>
  751. </div>
  752. </div>
  753. <div>
  754. <el-row>
  755. <el-col :span="16">
  756. <div class="condition">
  757. <el-form-item label="是否启用订单商品限制" style="margin-bottom: 10px">
  758. <div>
  759. <el-switch v-model="settingData.is_enable_order_num_limit"
  760. :active-value="1"
  761. :inactive-value="0">
  762. </el-switch>
  763. </div>
  764. </el-form-item>
  765. </div>
  766. </el-col>
  767. </el-row>
  768. <el-row v-if="settingData.is_enable_order_num_limit">
  769. <div class="condition">
  770. <el-form-item label="数量或重量限制" style="margin-bottom: 10px">
  771. <div style="display: flex;">
  772. <p>同一笔自提订单的商品超过</p>
  773. <el-input style="width: 250px; margin: 0 10px;"
  774. v-model="settingData.order_limit_num"
  775. type="number"
  776. @blur="settingData.order_limit_num = returnNumberFormatByType(settingData.order_limit_type, settingData.order_limit_num)">
  777. <template slot="append">
  778. <el-select style="width: 100px;"
  779. v-model="settingData.order_limit_type">
  780. <el-option label="kg"
  781. :value="1">
  782. </el-option>
  783. <el-option label="件"
  784. :value="2">
  785. </el-option>
  786. </el-select>
  787. </template>
  788. </el-input>
  789. <p>时,则无法提交,显示“下单失败”</p>
  790. </div>
  791. </el-form-item>
  792. </div>
  793. </el-row>
  794. <el-row>
  795. <el-col :span="16">
  796. <div class="condition">
  797. <el-form-item label="是否隐藏修改地址" style="margin-bottom: 10px">
  798. <div>
  799. <el-switch v-model="settingData.is_show_update_address"
  800. :active-value="1"
  801. :inactive-value="0">
  802. </el-switch>
  803. </div>
  804. </el-form-item>
  805. </div>
  806. </el-col>
  807. </el-row>
  808. </div>
  809. </el-card>
  810. <el-card shadow="never">
  811. <div slot="header">
  812. <div>
  813. <span>买货设置</span>
  814. </div>
  815. </div>
  816. <div>
  817. <el-row>
  818. <el-col :span="16">
  819. <div class="condition">
  820. <el-form-item label="会员买货扣除库存方式" style="margin-bottom: 10px">
  821. <div>
  822. <el-switch v-model="settingData.is_buy_type"
  823. :active-value="1"
  824. :inactive-value="0">
  825. </el-switch>
  826. </div>
  827. </el-form-item>
  828. </div>
  829. </el-col>
  830. </el-row>
  831. <el-row v-if="settingData.is_buy_type == 1">
  832. <div class="condition">
  833. <el-form-item label="" style="margin-bottom: 10px">
  834. <el-radio-group v-model="settingData.buy_type">
  835. <el-radio :label="1">实付金额</el-radio>
  836. <el-radio :label="2">成本价</el-radio>
  837. </el-radio-group>
  838. </el-form-item>
  839. </div>
  840. </el-row>
  841. <el-row>
  842. <el-col :span="16">
  843. <div class="condition">
  844. <el-form-item label="是否跳过等级不扣库存" style="margin-bottom: 10px">
  845. <div>
  846. <el-switch v-model="settingData.is_jump_level"
  847. :active-value="1"
  848. :inactive-value="0">
  849. </el-switch>
  850. </div>
  851. </el-form-item>
  852. </div>
  853. </el-col>
  854. </el-row>
  855. <el-row v-if="settingData.is_jump_level == 1">
  856. <div class="condition">
  857. <el-form-item label="选择跳过的等级" style="margin-bottom: 10px">
  858. <el-select v-model="settingData.jump_level" multiple placeholder="请选择">
  859. <el-option
  860. v-for="item in level_list"
  861. :key="item.level"
  862. :label="item.name"
  863. :value="item.level">
  864. </el-option>
  865. </el-select>
  866. </el-form-item>
  867. </div>
  868. </el-row>
  869. </div>
  870. </el-card>
  871. </el-form>
  872. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  873. @click="saveFun" size="small">保存
  874. </el-button>
  875. </el-tab-pane>
  876. <el-tab-pane label="页面配置" name="six">
  877. <el-container class="page-container" >
  878. <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
  879. <div class="sidebar">
  880. <h1 class="title">页面标题</h1>
  881. <el-menu :default-active="pageType" @select="handleSelect">
  882. <el-menu-item index="1">云库存首页</el-menu-item>
  883. <el-menu-item index="2">我的库存</el-menu-item>
  884. </el-menu>
  885. </div>
  886. </el-aside>
  887. <!-- 云库存首页 -->
  888. <el-container class="page-box" v-if="pageType==1">
  889. <div class="page-preview" >
  890. <div class="tips-text">提示:预览效果仅供参考,请以实际效果为准</div>
  891. <div class="preview-box" style="background-image: url('/resources/addons/CloudStock/index.png');" >
  892. <div class="summary-empty" v-if="showSummaryList" >已隐藏</div>
  893. <div class="stats-summary" v-if="summaryList.length" >
  894. <div
  895. class="draggableContent"
  896. @mousedown="startDrag"
  897. @mouseup="stopDrag"
  898. @mousemove="dragging"
  899. @mouseleave="stopDrag"
  900. ref="draggableContent">
  901. <div class="stat-item"
  902. v-for="item in summaryList" >
  903. <div class="stat-label">{{ item.title }}</div>
  904. <div class="stat-value">100</div>
  905. </div>
  906. </div>
  907. <!-- 指示点 -->
  908. <div class="indicator" v-if="summaryList.length>3">
  909. <div class="indeic-1"></div>
  910. <div class="indeic-2"></div>
  911. </div>
  912. </div>
  913. </div>
  914. </div>
  915. <div class="page-style">
  916. <h1 class="title">云库存首页</h1>
  917. <draggable :list="arrangeConfig" :animation="300" :animation="300" @start="start" @end="onEnd">
  918. <div class="setting-item" v-for="(item, index) in arrangeConfig" :key="index">
  919. <div class="cell">
  920. <span class="cell-label">{{item.name}}</span>
  921. <el-input v-model="item.title" placeholder="输入名称" maxlength="6" show-word-limit></el-input>
  922. </div>
  923. <div class="cell">
  924. <span class="cell-label">是否展示</span>
  925. <el-switch v-model="item.is_show" active-value="1" inactive-value="0"></el-switch>
  926. </div>
  927. </div>
  928. </draggable>
  929. </div>
  930. </el-container>
  931. <!-- 我的库存 -->
  932. <el-container class="page-box" v-if="pageType==2">
  933. <div class="page-preview" >
  934. <div class="tips-text">提示:预览效果仅供参考,请以实际效果为准</div>
  935. <div class="preview-box" style="background-image: url('/resources/addons/CloudStock/myInventory.png');">
  936. <div class="tab-empty" v-if="!settingData.is_show_cloud_stock_partition">
  937. 已隐藏
  938. </div>
  939. <div class="item-btns flex">
  940. <div class="btn-self" v-for="item in btnsList">
  941. {{item.title}}
  942. </div>
  943. </div>
  944. </div>
  945. </div>
  946. <div class="page-style">
  947. <h1 class="title">我的库存</h1>
  948. <div class="cell" >
  949. <span>开启云库存商品分区展示(复购商品和升级礼包商品)</span>
  950. <el-switch v-model="settingData.is_show_cloud_stock_partition" :active-value="1" :inactive-value="0"></el-switch>
  951. </div>
  952. <div class="setting-item" v-for="(item, index) in btnsConfig" :key="index">
  953. <div class="cell">
  954. <span class="cell-label">{{item.name}}</span>
  955. <el-input v-model="item.title" placeholder="输入名称" maxlength="5" show-word-limit></el-input>
  956. </div>
  957. <div class="cell">
  958. <span class="cell-label">是否展示</span>
  959. <el-switch v-model="item.is_show" active-value="1" inactive-value="0"></el-switch>
  960. </div>
  961. </div>
  962. </div>
  963. </el-container>
  964. </el-container>
  965. <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;"
  966. @click="saveFun" size="small">保存
  967. </el-button>
  968. </el-tab-pane>
  969. </el-tabs>
  970. </div>
  971. </el-card>
  972. <el-dialog
  973. title="编辑"
  974. center
  975. :visible.sync="smsDialogVisible"
  976. width="30%">
  977. <el-form label-width="80px" v-loading = 'loading2'>
  978. <el-form-item label="模板id" required>
  979. <el-input v-model.trim="detailData.temp_id"></el-input>
  980. </el-form-item>
  981. <el-form-item label="模板内容" required>
  982. <el-input v-model.trim="detailData.temp_content"></el-input>
  983. </el-form-item>
  984. <el-form-item label="模板key">
  985. <el-input v-model="detailData.sms_key" :disabled="true"></el-input>
  986. </el-form-item>
  987. <el-form-item label="模板名称">
  988. <el-input v-model="detailData.temp_name" :disabled="true"></el-input>
  989. </el-form-item>
  990. </el-form>
  991. <span slot="footer" class="dialog-footer">
  992. <el-button @click="smsDialogVisible = false">取 消</el-button>
  993. <el-button type="primary" @click="saveFun2" :loading="btnLoading">保 存</el-button>
  994. </span>
  995. </el-dialog>
  996. </div>
  997. <script src="/resources/js/Sortable.min.js"></script>
  998. <script src="<?= Yii::$app->request->baseUrl ?>/resources/unpkg/vuedraggable@2.18.1/dist/vuedraggable.umd.min.js"></script>
  999. <script>
  1000. const app = new Vue({
  1001. el: '#app',
  1002. data() {
  1003. return {
  1004. isDragging: false,
  1005. lastMouseX: 0,
  1006. scrollStartX: 0,
  1007. scrollLeft: 0,
  1008. loading: false,
  1009. btnLoading: false,
  1010. ruleForm: {
  1011. is_enable: 0,
  1012. equal_level:0,
  1013. is_allow_temp_fill:1,
  1014. temp_fill_time:0,
  1015. compute_time:0,
  1016. fill_sms: {
  1017. "template_id":"",
  1018. "template_variable_id":"",
  1019. "template_variable_num":"",
  1020. "template_variable_duration":""
  1021. },
  1022. is_can_pick_free: 0,
  1023. is_deduction_commission: 0,
  1024. is_deduction_agent_commission: 0,
  1025. is_deduction_area_commission: 0,
  1026. is_deduction_distribution_commission: 0,
  1027. is_deduction_double_commission: 0,
  1028. deduction_commission_arr:{},
  1029. },
  1030. activeName:"six",
  1031. jiangLiRadio:"1",
  1032. dialogVisible:false,
  1033. chooseDate:'',
  1034. level_list:[],
  1035. bonus_level_list:[],
  1036. pageCount:0,
  1037. dialogVisible2:false,
  1038. selectId:0,
  1039. smsDialogVisible:false,
  1040. current_sms_key:'',
  1041. detailData:{},
  1042. loading2:false,
  1043. settingData:{
  1044. is_enable:1,
  1045. is_enable_wangdiantong: 0,
  1046. is_time_limit_fill:1,
  1047. bonus:'payment',
  1048. fill_bonus:0,
  1049. is_give_quota:1,
  1050. is_deduct_goods:0,
  1051. is_notice:1,
  1052. is_sync_distribution_level:0,
  1053. is_sync_agent_level:0,
  1054. is_sync_boss_bonus:0,
  1055. is_sync_area_reward:1,
  1056. fill_hour:0,
  1057. compute_type: 0,
  1058. compute_delay_day: 0,
  1059. level_up_give_stock_by_parent:0,
  1060. level_up_give_stock_by_parent_type:0,
  1061. fill_price_difference:0,
  1062. buy_price_difference:0,
  1063. price_difference_type:0,
  1064. is_difference_equal:0,
  1065. is_find_equal: 0,
  1066. difference_equal_type:0,
  1067. is_equal_2_step:0,
  1068. award_proportion_settlement_type:0,
  1069. is_upgrade_bag_give_goods:0,
  1070. is_upgrade_bag_give_goods_pool:0,
  1071. is_superposition:0,
  1072. pool_settlement_type:0,
  1073. cloud_stock_level:'',
  1074. award_proportion : [
  1075. {
  1076. num : 0.00,
  1077. money : 0.00,
  1078. },
  1079. ],
  1080. team_reward_goods_id:[],
  1081. level_up_give_deduction_commission_arr:0,
  1082. award_proportion_reward_type:0,
  1083. award_proportion_by_platform:0,
  1084. award_proportion_calculate_type:0,
  1085. award_proportion_clear_type:0,
  1086. cloud_stock_bonus_level_arr:[],
  1087. cloud_stock_level_arr:[],
  1088. is_enable_rand_fee:0,
  1089. rand_condition:[{}],
  1090. is_enable_freight_charges:0,
  1091. buy_double_copy_goods_dec_cloud_stock_goods:0,
  1092. is_enable_order_num_limit: 0,
  1093. is_show_update_address: 0,
  1094. order_limit_num: 0,
  1095. order_limit_type: 1,
  1096. upgrade_bag_product_deduction:0,
  1097. upgrade_bag_product_deduction_level:'',
  1098. upgrade_bag_product_up_limit:0,
  1099. payment_is_not_in_commission:0,
  1100. profit_in_commission: 0,
  1101. payment_withdraw:0,
  1102. payment_withdraw_poundage:0,
  1103. payment_to_balance:0,
  1104. payment_to_balance_poundage:0,
  1105. withdraw_cash_type:[],
  1106. cloud_stock_index:[],//云库存首页
  1107. my_cloud_stock:[],//我的库存
  1108. is_show_cloud_stock_partition:0,//开启云库存商品分区展示(复购商品和升级礼包商品
  1109. gift_plan_give_type:0,//赠送方案赠送商品时间
  1110. agreement_content: "",
  1111. is_show_agreement_content: 0,
  1112. is_trigger_level_award: 0,
  1113. settlement_cycle_of_equal_prize: 0,
  1114. payment_for_goods_price_difference: 0,
  1115. is_buy_type: 0,
  1116. buy_type: 1,
  1117. is_jump_level: 0,
  1118. jump_level: [],
  1119. },
  1120. list:[],
  1121. team_reward_goods_list:[],
  1122. formLabelWidth: '150px',
  1123. addBtn: true,
  1124. rules: {
  1125. },
  1126. is_install_wangdiantong: <?= $is_install_wangdiantong ?>,
  1127. withdraw_way:{},
  1128. // 页面配置数据
  1129. pageType:"1",
  1130. is_tabs:false,
  1131. arrangeConfig: [
  1132. {
  1133. name:'云仓库存',
  1134. title: '云仓库存',
  1135. code: 'agent_stock_goods_amount',
  1136. is_show: "1"
  1137. },
  1138. {
  1139. name:'待结算货款',
  1140. title: '待结算货款',
  1141. code: 'agent_frozen_price',
  1142. is_show:"1"
  1143. },
  1144. {
  1145. name: '已结算收益',
  1146. title: '已结算收益',
  1147. code: 'agent_price',
  1148. is_show: "1"
  1149. },
  1150. {
  1151. name:'云仓待结货款',
  1152. title: '云仓待结货款',
  1153. code: 'cloud_warehouse_frozen_price',
  1154. is_show: "1"
  1155. },
  1156. {
  1157. name:'已结算货款',
  1158. title: '云仓已结货款',
  1159. code: 'cloud_warehouse_price',
  1160. is_show: "1"
  1161. },
  1162. {
  1163. name: '待结算平级奖',
  1164. title: '待结算平级奖',
  1165. code: 'pending_level_reward',
  1166. is_show: "0"
  1167. },
  1168. {
  1169. name: '已结算平级奖',
  1170. title: '已结算平级奖',
  1171. code: 'settled_level_reward',
  1172. is_show: "0"
  1173. },
  1174. {
  1175. name: '差价利润',
  1176. title: '差价利润',
  1177. code: 'price_difference',
  1178. is_show: "0"
  1179. },
  1180. {
  1181. name: '流失金额',
  1182. title: '流失金额',
  1183. code: 'forfeited_amount',
  1184. is_show: "0"
  1185. }
  1186. ],
  1187. btnsConfig:[{
  1188. name:'库存明细',
  1189. title: '库存明细',
  1190. code: 'inventory_details',
  1191. is_show: "1"
  1192. },{
  1193. name:'补货',
  1194. title: '补货',
  1195. code: 'replenish',
  1196. is_show: "1"
  1197. },{
  1198. name:'云仓配货',
  1199. title: '云仓配货',
  1200. code: 'distribution',
  1201. is_show: "1"
  1202. },{
  1203. name:'提货到线下',
  1204. title: '提货到线下',
  1205. code: 'pick_up_goods',
  1206. is_show: "1"
  1207. }]
  1208. }
  1209. },
  1210. computed:{
  1211. summaryList() {
  1212. const arr=this.arrangeConfig.filter(item=>{
  1213. return item.is_show!=='0'
  1214. })
  1215. console.log(arr);
  1216. return arr
  1217. },
  1218. showSummaryList(){
  1219. const allVisible = this.arrangeConfig.every(item => {
  1220. return item.is_show === '0'; // 检查每个项的 is_show 是否等于 1
  1221. });
  1222. console.log(allVisible);
  1223. return allVisible; // 返回布尔值
  1224. },
  1225. btnsList() {
  1226. return this.btnsConfig.filter(item=>item.is_show==1)
  1227. },
  1228. showBtnsList(){
  1229. const allVisible = this.btnsConfig.every(item => {
  1230. return item.is_show === '0'; // 检查每个项的 is_show 是否等于 1
  1231. });
  1232. console.log(allVisible);
  1233. return allVisible; // 返回布尔值
  1234. },
  1235. },
  1236. mounted: function () {
  1237. this.loadData();
  1238. this.getList();
  1239. },
  1240. methods: {
  1241. onEnd(e) {
  1242. this.$emit("change-move", {
  1243. newIndex: e.newIndex,
  1244. list: this.arrangeConfig
  1245. })
  1246. this.duration = 0
  1247. },
  1248. start(e){
  1249. console.log(e);
  1250. this.duration = 300
  1251. },
  1252. startDrag(event) {
  1253. this.isDragging = true; // 开始拖动
  1254. this.lastMouseX = event.clientX; // 记录鼠标初始位置
  1255. this.scrollStartX = this.$refs.draggableContent.scrollLeft; // 记录当前滚动位置
  1256. this.$refs.draggableContent.style.cursor = 'grabbing'; // 更改鼠标样式
  1257. },
  1258. stopDrag() {
  1259. this.isDragging = false; // 停止拖动
  1260. this.$refs.draggableContent.style.cursor = 'grab'; // 恢复鼠标样式
  1261. },
  1262. dragging(event) {
  1263. if (!this.isDragging) return; // 如果没有拖动状态则不处理
  1264. const deltaX = event.clientX - this.lastMouseX; // 计算鼠标移动的距离
  1265. this.$refs.draggableContent.scrollLeft = this.scrollStartX - deltaX; // 更新滚动位置
  1266. },
  1267. loadData() {
  1268. this.loading = true;
  1269. request({
  1270. params: {
  1271. r: 'cloud-stock/setting/index',
  1272. },
  1273. method: 'get'
  1274. }).then(e => {
  1275. this.loading = false;
  1276. if (e.data.code == 0) {
  1277. if(e.data.data){
  1278. if(e.data.data!=''){
  1279. this.settingData = e.data.data;
  1280. this.withdraw_way = e.data.data.withdraw_way;
  1281. this.settingData.fill_bonus = this.settingData.fill_bonus.toString();
  1282. this.team_reward_goods_list = e.data.data.team_reward_goods_list;
  1283. this.level_list = e.data.data.level_list;
  1284. this.bonus_level_list = e.data.data.bonus_level_list;
  1285. if(!this.settingData.bonus){
  1286. this.settingData.bonus = 'payment'
  1287. }
  1288. if(this.settingData.cloud_stock_index){
  1289. if (JSON.parse(this.settingData.cloud_stock_index).length<this.arrangeConfig.length) {
  1290. let arr=[{
  1291. name: '待结算平级奖',
  1292. title: '待结算平级奖',
  1293. code: 'pending_level_reward',
  1294. is_show: "0"
  1295. },
  1296. {
  1297. name: '已结算平级奖',
  1298. title: '已结算平级奖',
  1299. code: 'settled_level_reward',
  1300. is_show: "0"
  1301. },
  1302. {
  1303. name: '差价利润',
  1304. title: '差价利润',
  1305. code: 'price_difference',
  1306. is_show: "0"
  1307. },
  1308. {
  1309. name: '流失金额',
  1310. title: '流失金额',
  1311. code: 'forfeited_amount',
  1312. is_show: "0"
  1313. }]
  1314. this.arrangeConfig=[...JSON.parse(this.settingData.cloud_stock_index),...arr]
  1315. }else{
  1316. this.arrangeConfig=JSON.parse(this.settingData.cloud_stock_index)
  1317. }
  1318. } else {
  1319. this.arrangeConfig = JSON.parse(this.settingData.cloud_stock_index)
  1320. }
  1321. this.arrangeConfig.forEach((item, key) => {
  1322. if (item.title == '云仓已结货款') {
  1323. this.arrangeConfig[key].name = '已结算货款';
  1324. }
  1325. });
  1326. if(this.settingData.my_cloud_stock){
  1327. this.btnsConfig = JSON.parse(this.settingData.my_cloud_stock)
  1328. }
  1329. }
  1330. }
  1331. }
  1332. }).catch(e => {
  1333. this.loading = false;
  1334. })
  1335. },
  1336. saveFun(){
  1337. if(this.settingData.is_time_limit_fill == 1 && this.settingData.fill_hour <=0 ){
  1338. return this.$message.error('请输入正确的补货时限');
  1339. }
  1340. if(this.settingData.award_proportion_reward_type == 0 && this.settingData.award_proportion_calculate_type == 1){
  1341. return this.$message.error('实时统计结算不可选择按业绩统计结算');
  1342. }
  1343. if(this.settingData.is_enable_rand_fee == 1){
  1344. if(this.settingData.rand_condition.length > 0){
  1345. let max = 0;
  1346. try{
  1347. this.settingData.rand_condition.forEach((item, key) => {
  1348. item.rand_min = parseFloat(item.rand_min);
  1349. item.rand_max = parseFloat(item.rand_max);
  1350. item.total_price = parseFloat(item.total_price);
  1351. if(item.rand_min > item.rand_max){
  1352. throw new Error('随机减开始金额请勿大于结束金额');
  1353. }
  1354. if(item.rand_max > item.total_price){
  1355. throw new Error('随机减金额请勿大于订单金额');
  1356. }
  1357. if(max > item.total_price){
  1358. throw new Error('随机减订单金额请设置递增');
  1359. }
  1360. max = item.total_price;
  1361. });
  1362. }catch(e){
  1363. this.$message.error(e.message);
  1364. return
  1365. }
  1366. }else{
  1367. this.$message.error('请设置随机减条件');
  1368. return
  1369. }
  1370. }
  1371. this.settingData.cloud_stock_index = this.arrangeConfig
  1372. this.settingData.my_cloud_stock = this.btnsConfig
  1373. this.btnLoading = true;
  1374. request({
  1375. params: {
  1376. r: 'cloud-stock/setting/index',
  1377. },
  1378. method: 'post',
  1379. data: this.settingData
  1380. }).then(e => {
  1381. this.btnLoading = false;
  1382. if (e.data.code == 0) {
  1383. this.$message.success(e.data.msg);
  1384. } else {
  1385. this.$message.error(e.data.msg);
  1386. }
  1387. }).catch(e => {
  1388. this.$message.error(e);
  1389. this.btnLoading = false;
  1390. })
  1391. },
  1392. store(formName) {
  1393. this.$refs[formName].validate((valid) => {
  1394. if (valid) {
  1395. this.btnLoading = true;
  1396. request({
  1397. params: {
  1398. r: 'cloud-stock/setting/index',
  1399. },
  1400. method: 'post',
  1401. data: this.ruleForm
  1402. }).then(e => {
  1403. this.btnLoading = false;
  1404. if (e.data.code == 0) {
  1405. this.$message.success(e.data.msg);
  1406. } else {
  1407. this.$message.error(e.data.msg);
  1408. }
  1409. }).catch(e => {
  1410. this.$message.error(e);
  1411. this.btnLoading = false;
  1412. })
  1413. } else {
  1414. this.btnLoading = false;
  1415. console.log('error submit!!');
  1416. return false;
  1417. }
  1418. });
  1419. },
  1420. pagination(currentPage) {
  1421. },
  1422. getList() {
  1423. let self = this;
  1424. self.loading = true;
  1425. request({
  1426. params: {
  1427. r: 'cloud-stock/setting/sms-list'
  1428. },
  1429. method: 'get',
  1430. }).then(e => {
  1431. self.loading = false;
  1432. if(e.data.code == 0){
  1433. self.list = e.data.data;
  1434. }
  1435. }).catch(e => {
  1436. console.log(e);
  1437. });
  1438. },
  1439. editClick(row){
  1440. this.current_sms_key = row.sms_key;
  1441. this.smsDialogVisible = true;
  1442. this.getDetail();
  1443. },
  1444. getDetail(){
  1445. this.loading2 = true;
  1446. request({
  1447. params: {
  1448. r: 'cloud-stock/setting/get-sms-detail',
  1449. sms_key:this.current_sms_key
  1450. },
  1451. method: 'get',
  1452. }).then(e => {
  1453. this.loading2 = false;
  1454. if(e.data.code == 0){
  1455. this.detailData = e.data.data;
  1456. }
  1457. }).catch(e => {
  1458. console.log(e);
  1459. });
  1460. },
  1461. saveFun2(){
  1462. if(this.detailData.temp_id == '' || this.detailData.temp_content == ''){
  1463. return this.$message.error('请填入模板id和模板内容');
  1464. }
  1465. this.btnLoading = true;
  1466. request({
  1467. params: {
  1468. r: 'cloud-stock/setting/sms-save'//短信模板更新
  1469. },
  1470. method: 'post',
  1471. data: {
  1472. id:this.detailData.id,
  1473. sms_key:this.detailData.sms_key,
  1474. temp_content:this.detailData.temp_content,
  1475. temp_id:this.detailData.temp_id,
  1476. temp_name:this.detailData.temp_name
  1477. }
  1478. }).then(response => {
  1479. this.btnLoading = false;
  1480. if (response.data.code == 0) {
  1481. this.$message.success('保存成功');
  1482. this.smsDialogVisible = false;
  1483. } else {
  1484. this.$message.error(response.data.msg);
  1485. }
  1486. }).catch(response => {
  1487. this.edit.btnLoading = false;
  1488. });
  1489. },
  1490. // 0.1 点击添加奖励比例
  1491. addCouponItem(){
  1492. let flag = true;
  1493. this.settingData.award_proportion.forEach((item, index)=>{
  1494. if(index>0 && this.settingData.award_proportion[index-1].num*1>=item.num*1){
  1495. this.$message.error('出货量设置只能递增');
  1496. flag = false
  1497. return
  1498. }
  1499. if(index>0 && this.settingData.award_proportion[index-1].money*1>=item.money*1){
  1500. this.$message.error('奖励比例设置只能递增');
  1501. flag = false
  1502. return
  1503. }
  1504. })
  1505. if(!flag) return
  1506. let award_proportion = JSON.parse(JSON.stringify(this.settingData.award_proportion));
  1507. let item = {money : 0.00,proportion : 0.00,};
  1508. award_proportion.push(item);
  1509. this.settingData.award_proportion = award_proportion;
  1510. },
  1511. // 点击删除某一item
  1512. delItem(index){
  1513. let award_proportion = JSON.parse(JSON.stringify(this.settingData.award_proportion));
  1514. award_proportion.splice(index, 1);
  1515. this.settingData.award_proportion = award_proportion;
  1516. },
  1517. goodsSelect2(param) {
  1518. for (let j in param) {
  1519. let item = param[j];
  1520. if (this.settingData.team_reward_goods_id&&this.settingData.team_reward_goods_id.length >= 99) {
  1521. this.$message.error('指定商品不能大于99个');
  1522. return;
  1523. }
  1524. let flag = true;
  1525. for (let i in this.settingData.team_reward_goods_id) {
  1526. if (this.settingData.team_reward_goods_id[i] == item.goods_id) {
  1527. flag = false;
  1528. break;
  1529. }
  1530. }
  1531. if (flag) {
  1532. this.settingData.team_reward_goods_id.push(item.goods_id);
  1533. this.team_reward_goods_list.push({
  1534. id: item.goods_id,
  1535. name: item.goods_name,
  1536. cover_pic: item.cover_pic,
  1537. });
  1538. }
  1539. }
  1540. },
  1541. deleteGoods2(index) {
  1542. this.team_reward_goods_list.splice(index, 1);
  1543. this.settingData.team_reward_goods_id.splice(index, 1);
  1544. },
  1545. levelUpGiveStockByParentType(value){
  1546. if(value==1){
  1547. this.settingData.level_up_give_deduction_commission_arr=0;
  1548. }
  1549. },
  1550. // 添加条件
  1551. addCondition() {
  1552. if (this.settingData.rand_condition.length >= 10) {
  1553. return
  1554. }
  1555. this.settingData.rand_condition.push({
  1556. total_price:0,
  1557. rand_min:0,
  1558. rand_max:0,
  1559. })
  1560. },
  1561. // 删除条件
  1562. delCondition(key) {
  1563. let condition = this.settingData.rand_condition.filter((item, index) => {
  1564. return index != key
  1565. })
  1566. this.settingData.rand_condition = condition
  1567. },
  1568. keepTwoDecimalPlaces(num) {
  1569. return Math.round(num * 100) / 100;
  1570. },
  1571. returnNumberFormatByType(type, value) {
  1572. let res = 0;
  1573. if (type == 1) {
  1574. res = Math.abs(this.keepTwoDecimalPlaces(value))
  1575. } else if (type == 2) {
  1576. res = Math.abs(parseInt(value))
  1577. }
  1578. return res
  1579. },
  1580. handleSelect(key, keyPath) {
  1581. this.pageType = key
  1582. }
  1583. }
  1584. });
  1585. </script>
  1586. <style lang="scss" scoped>
  1587. .form_box {
  1588. /* background-color: #f3f3f3;
  1589. padding: 0 0 20px; */
  1590. background-color: #fff;
  1591. padding:20px;
  1592. }
  1593. .button-item {
  1594. margin-top: 12px;
  1595. padding: 9px 25px;
  1596. }
  1597. .el-input-group__append {
  1598. background-color: #fff;
  1599. color: #353535;
  1600. }
  1601. .el-card__body{
  1602. padding: 0;
  1603. }
  1604. .el-card{
  1605. border: none;
  1606. }
  1607. .el-table thead{
  1608. font-size: 14px;
  1609. color: #333;
  1610. }
  1611. /* .el-table__footer-wrapper, .el-table__header-wrapper{
  1612. border-bottom: 1.4px solid #D6D6D6;
  1613. } */
  1614. .dialogClass .el-dialog__body{
  1615. padding-bottom: 0;
  1616. }
  1617. .el-date-editor .el-range-separator{/* 设置选择日期框的中间的 ‘至’ 的宽度 */
  1618. width: 8%;
  1619. }
  1620. /* .myFormItem .el-form-item__label{
  1621. font-size: 12px;
  1622. } */
  1623. .el-input-group__append {
  1624. background-color: #fff;
  1625. color: #353535;
  1626. }
  1627. .condition {
  1628. margin-top: 20px;
  1629. }
  1630. .condition .el-col-1 {
  1631. text-align: center;
  1632. /* margin-left: 50px !important; */
  1633. }
  1634. .condition .el-col-2 {
  1635. text-align: center;
  1636. /* margin-left: 50px !important; */
  1637. }
  1638. .del-condition {
  1639. cursor: pointer;
  1640. }
  1641. .condition .el-form-item {
  1642. margin-bottom: 8px !important;
  1643. }
  1644. .input-number-box{
  1645. margin-left: 38px;
  1646. display: inline-block;
  1647. }
  1648. .input-number-box .el-input-number{
  1649. margin: 0 8px;
  1650. }
  1651. .input-number-box,.input-number-box span{
  1652. vertical-align: middle;
  1653. }
  1654. /* 页面配置样式 */
  1655. .page-container {
  1656. display: flex;
  1657. background-color: #f5f5f5;
  1658. border: 1px solid #eee;
  1659. .title {
  1660. margin-top: 0;
  1661. margin-bottom: 24px;
  1662. }
  1663. .sidebar {
  1664. width: 200px;
  1665. background-color: #ffffff;
  1666. padding: 20px 0 ;
  1667. height: 100%;
  1668. .title {
  1669. padding-left: 20px;
  1670. }
  1671. .el-menu {
  1672. border: none;
  1673. .is-active {
  1674. background-color: rgba(64, 158, 255, 0.1);
  1675. }
  1676. }
  1677. }
  1678. .page-box {
  1679. display: flex;
  1680. }
  1681. .page-preview {
  1682. flex: 1;
  1683. display: flex;
  1684. flex-direction: column;
  1685. align-items: center;
  1686. margin-top: 40px;
  1687. .tips-text {
  1688. margin-bottom: 12px;
  1689. }
  1690. .preview-box {
  1691. width: 430px;
  1692. height: 890px;
  1693. position: relative;
  1694. /* 云库存首页 */
  1695. .summary-empty {
  1696. background-color: rgba(0, 0, 0, 0.2);
  1697. position: absolute;
  1698. margin: 16px;
  1699. padding: 38px 24px;
  1700. top: 155px;
  1701. left: 23px;
  1702. width: 358px;
  1703. border-radius: 10px;
  1704. text-align: center;
  1705. }
  1706. .stats-summary {
  1707. position: absolute;
  1708. margin: 16px;
  1709. padding: 23px 24px;
  1710. top: 155px;
  1711. left: 23px;
  1712. width: 358px;
  1713. .draggableContent{
  1714. display: flex;
  1715. width: 310px;
  1716. overflow-x: auto; /* 允许横向滚动 */
  1717. -webkit-user-select: none; /* Safari */
  1718. -moz-user-select: none; /* Firefox */
  1719. -ms-user-select: none; /* Internet Explorer/Edge */
  1720. user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
  1721. }
  1722. /* 隐藏滚动条 */
  1723. .draggableContent::-webkit-scrollbar {
  1724. width: 0; /* Chrome Safari */
  1725. height: 0;
  1726. }
  1727. .draggableContent {
  1728. -ms-overflow-style: none; /* IE和Edge */
  1729. scrollbar-width: none; /* Firefox */
  1730. }
  1731. .stat-item {
  1732. width: calc(100% / 3);
  1733. text-align: center;
  1734. display: flex;
  1735. flex-direction: column;
  1736. flex-shrink: 0;
  1737. }
  1738. .stat-value {
  1739. font-size: 19px;
  1740. font-weight: bold;
  1741. margin-top: 6px;
  1742. }
  1743. .stat-label {
  1744. font-size: 12px;
  1745. color: #000;
  1746. }
  1747. }
  1748. /* 指示点 */
  1749. .indicator {
  1750. display: flex;
  1751. justify-content: center;
  1752. position: absolute;
  1753. bottom: 6px;
  1754. left: 0;
  1755. right: 0;
  1756. }
  1757. .indicator > div {
  1758. width: 14px;
  1759. height: 3px;
  1760. background: #C7C7C7;
  1761. border-radius: 2px 2px 2px 2px;
  1762. }
  1763. .indeic-2 {
  1764. margin-left:4px;
  1765. opacity: 0.4;
  1766. }
  1767. /* 我的库存 */
  1768. .tab-empty {
  1769. position: absolute;
  1770. background-color: #cccccc;
  1771. text-align: center;
  1772. height: 40px;
  1773. width: 391px;
  1774. top: 219px;
  1775. left: 17px;
  1776. line-height: 40px;
  1777. }
  1778. .item-btns {
  1779. position: absolute;
  1780. top: 522px;
  1781. left: 36px;
  1782. width: 355px;
  1783. display: flex;
  1784. justify-content: end;
  1785. align-items: center;
  1786. padding-top: 6px;
  1787. .btn-self+.btn-self {
  1788. margin-left: 16px;
  1789. }
  1790. .btn-self {
  1791. width: 77px;
  1792. line-height: 28px;
  1793. font-size: 12px;
  1794. border: 1px solid #4985E9;
  1795. color: #4985E9;
  1796. border-radius: 20px;
  1797. text-align: center;
  1798. }
  1799. }
  1800. }
  1801. }
  1802. .page-style {
  1803. padding: 20px 40px;
  1804. background: #FFF;
  1805. height: 100%;
  1806. width: 500px;
  1807. .setting-item {
  1808. margin-bottom: 15px;
  1809. padding: 40px 40px 16px 40px;
  1810. background-color: #F6F6F6;
  1811. border-radius: 5px;
  1812. }
  1813. .cell+.cell {
  1814. }
  1815. .cell {
  1816. display: flex;
  1817. align-items: center;
  1818. white-space: nowrap;
  1819. margin-bottom: 24px;
  1820. }
  1821. .cell-label {
  1822. width: 90px;
  1823. padding-right: 12px;
  1824. flex-shrink: 0;
  1825. text-align: end;
  1826. }
  1827. }
  1828. }
  1829. /* 页面配置样式 end */
  1830. </style>