set-vue.blade.php 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}" />
  5. <link rel="stylesheet" href="{{resource_get('plugins/yz-supply/assent/css/album1.css?time='.time())}}">
  6. <div class="all">
  7. <div id="app" v-cloak>
  8. <div class="vue-head">
  9. <div class="top-title">
  10. <span :class="item.class" v-for="(item,index) in albumTopTitle" @click="skipUrl(item)" :key="index">[[item.name]]</span>
  11. </div>
  12. </div>
  13. <div class="vue-main">
  14. <div class="vue-main-form" style="margin-bottom: 130px;">
  15. <el-form ref="form" :model="form" label-width="15%">
  16. <div class="block">
  17. <div class="vue-main-title" style="margin-bottom:20px">
  18. <div class="vue-main-title-left"></div>
  19. <div class="vue-main-title-content">基础设置</div>
  20. <div class="vue-main-title-button">
  21. </div>
  22. </div>
  23. <el-form-item label="回调地址" >
  24. <el-input v-model="push_url" placeholder="" style="width:70%;" disabled></el-input>
  25. <span style="" class='help-block'>复制此链接到(采购端列表-新增/修改-回调地址)</span>
  26. </el-form-item>
  27. <el-form-item label="获取商城订单信息" >
  28. <el-input v-model="get_order_url" placeholder="" style="width:70%;" disabled></el-input>
  29. <span style="" class='help-block'>复制此链接到(采购端列表)</span>
  30. </el-form-item>
  31. <el-form-item label="店铺名称" >
  32. <el-input v-model="form.shop_name" placeholder="店铺名称" style="width:70%;"></el-input>
  33. <span style="" class='help-block'>默认为供应链</span>
  34. </el-form-item>
  35. <div class="title">
  36. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  37. <b>更新设置</b>
  38. </div>
  39. <el-form-item label="自动更新商品现价" prop="is_close_auto_update">
  40. <el-radio v-model.number="form.is_close_auto_update" :label="0">开启</el-radio>
  41. <el-radio v-model.number="form.is_close_auto_update" :label="1">关闭</el-radio>
  42. <span style="" class='help-block'>关闭则不更新商品现价</span>
  43. </el-form-item>
  44. <el-form-item label="自动更新商品原价" prop="is_close_auto_update_market">
  45. <el-radio v-model.number="form.is_close_auto_update_market" :label="0">开启</el-radio>
  46. <el-radio v-model.number="form.is_close_auto_update_market" :label="1">关闭</el-radio>
  47. <span style="" class='help-block'>关闭则不更新商品原价</span>
  48. </el-form-item>
  49. <el-form-item label="自动更新商品成本价格" prop="is_close_auto_update_cost">
  50. <el-radio v-model.number="form.is_close_auto_update_cost" :label="0">开启</el-radio>
  51. <el-radio v-model.number="form.is_close_auto_update_cost" :label="1">关闭</el-radio>
  52. <span style="" class='help-block'>关闭则不更新商品成本价格</span>
  53. </el-form-item>
  54. <el-form-item label="自动更新商品基本信息" prop="is_close_auto_detail">
  55. <el-radio v-model.number="form.is_close_auto_detail" :label="0">开启</el-radio>
  56. <el-radio v-model.number="form.is_close_auto_detail" :label="1">关闭</el-radio>
  57. <span style="" class='help-block'>关闭则不更新商品详情</span>
  58. </el-form-item>
  59. <el-form-item label="自动更新商品主图" prop="is_close_auto_image">
  60. <el-radio v-model.number="form.is_close_auto_image" :label="0">开启</el-radio>
  61. <el-radio v-model.number="form.is_close_auto_image" :label="1">关闭</el-radio>
  62. <span style="" class='help-block'>关闭则不更新商品主图</span>
  63. </el-form-item>
  64. <el-form-item label="自动更新商品发票信息" prop="is_close_auto_invoicing">
  65. <el-radio v-model.number="form.is_close_auto_invoicing" :label="0">开启</el-radio>
  66. <el-radio v-model.number="form.is_close_auto_invoicing" :label="1">关闭</el-radio>
  67. <span style="" class='help-block'>关闭则不更新商品发票信息</span>
  68. </el-form-item>
  69. <el-form-item label="导入时创建品牌" prop="create_brand">
  70. <el-radio v-model.number="form.create_brand" :label="1">开启</el-radio>
  71. <el-radio v-model.number="form.create_brand" :label="0">关闭</el-radio>
  72. <span style="" class='help-block'>开启后导入商品时将创建对应商品品牌并将商品绑入相应品牌</span>
  73. </el-form-item>
  74. <el-form-item label="导入时自动匹配分类" prop="create_category">
  75. <el-radio v-model.number="form.create_category" :label="1">开启</el-radio>
  76. <el-radio v-model.number="form.create_category" :label="0">关闭</el-radio>
  77. <span style="" class='help-block'>开启后导入商品时,如未选择导入分类,将创建对应分类并将商品绑入相应分类</span>
  78. </el-form-item>
  79. <el-form-item label="下单时是否预占库存" prop="is_camp_on">
  80. <el-radio v-model.number="form.is_camp_on" :label="1">开启</el-radio>
  81. <el-radio v-model.number="form.is_camp_on" :label="0">关闭</el-radio>
  82. <span style="" class='help-block'>开启后,供应链商品下单时会在中台预占库存</span>
  83. </el-form-item>
  84. <el-form-item label="价格整数">
  85. <el-checkbox-group v-model="form.round_price">
  86. <el-checkbox label="现价" :label="1">现价</el-checkbox>
  87. <el-checkbox label="成本价" :label="2">成本价</el-checkbox>
  88. <el-checkbox label="原价" :label="3">原价</el-checkbox>
  89. </el-checkbox-group>
  90. </el-form-item>
  91. <div class="title">
  92. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  93. <b>风控策略</b>
  94. </div>
  95. <el-form-item label="风控策略" prop="control_method">
  96. <el-radio v-model.number="form.control_method" :label="0">产品售价 < 成本价</el-radio>
  97. <el-radio v-model.number="form.control_method" :label="1">利润率 < 设定利润率(%)</el-radio>
  98. <el-input v-model="form.profit_radio" type="number" style="width:100px;margin-right: 10px;"></el-input>
  99. {{-- <el-radio v-model.number="form.control_method" :label="2">售价小于等于0元</el-radio>--}}
  100. </el-form-item>
  101. <el-form-item label="售价小于等于0元" prop="price_zero">
  102. <el-radio v-model.number="form.is_price_zero" :label="1">开启</el-radio>
  103. <el-radio v-model.number="form.is_price_zero" :label="0">关闭</el-radio>
  104. <span style="" class='help-block'>
  105. 开启后与风控策略同时生效<br>
  106. 导入/更新时商品价格小于等于0时触发<br>
  107. </span>
  108. </el-form-item>
  109. <div class="title">
  110. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  111. <b>订单策略</b>
  112. </div>
  113. <el-form-item label="商品拆单" prop="goods_split">
  114. <el-radio v-model.number="form.goods_split" :label="1">开启</el-radio>
  115. <el-radio v-model.number="form.goods_split" :label="0">关闭</el-radio>
  116. <span style="" class='help-block'>开启后,每一个商品拆成一笔订单,订单原有逻辑不变</span>
  117. </el-form-item>
  118. <el-form-item label="运费设定" prop="calculate_type">
  119. <el-radio v-model.number="form.freight_set" :label="0">供应链运费</el-radio>
  120. <el-radio v-model.number="form.freight_set" :label="1">商品自设运费</el-radio>
  121. </el-form-item>
  122. <el-form-item label="运费计算" prop="calculate_type">
  123. <el-radio v-model.number="form.freight_method" :label="0">协议价</el-radio>
  124. <el-radio v-model.number="form.freight_method" :label="1">售价</el-radio>
  125. <span style="" class='help-block'>
  126. 该设置只对京东商品有效<br>
  127. 订单金额<49元,运费8元<br>
  128. 订单金额<99元,运费6元<br>
  129. 订单金额>99元,免运费
  130. </span>
  131. </el-form-item>
  132. <div class="title">
  133. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  134. <b>默认批量下单(中)地址</b>
  135. </div>
  136. <el-form-item label="姓名" >
  137. <el-input v-model="form.username" placeholder="姓名" style="width:70%;"></el-input>
  138. </el-form-item>
  139. <el-form-item label="联系方式" >
  140. <el-input v-model="form.mobile" placeholder="联系方式" style="width:70%;"></el-input>
  141. </el-form-item>
  142. <el-form-item label="省市区" prop="" v-loading="areaLoading">
  143. <el-select v-model="form.province_id" placeholder="请选择省" clearable @change="changeProvince" >
  144. <el-option v-for="item in province_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  145. </el-select>
  146. <el-select v-model="form.city_id" placeholder="请选择市" clearable @change="changeCity" >
  147. <el-option v-for="item in city_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  148. </el-select>
  149. <el-select v-model="form.district_id" placeholder="请选择区" clearable @change="changeDistrict" >
  150. <el-option v-for="item in district_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  151. </el-select>
  152. <el-select v-model="form.street_id" placeholder="请选择街道" clearable >
  153. <el-option v-for="item in street_list" :key="item.id" :label="item.areaname" :value="item.id"></el-option>
  154. </el-select>
  155. </el-form-item>
  156. <el-form-item label="详细地址" >
  157. <el-input v-model="form.address" placeholder="详细地址" style="width:70%;"></el-input>
  158. </el-form-item>
  159. <div style="height: 50px;"></div>
  160. </div>
  161. </div>
  162. <div class="vue-page">
  163. <div class="vue-center">
  164. <el-button type="primary" @click="submit">保存设置</el-button>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. <script>
  172. var vm = new Vue({
  173. el: "#app",
  174. delimiters: ['[[', ']]'],
  175. data() {
  176. return {
  177. albumTopTitle: [
  178. {
  179. id: 1,
  180. name: "基础设置",
  181. class:"album-name",
  182. url:"{!! yzWebFullUrl('plugin.yz-supply.admin.set.index') !!}"
  183. },
  184. {
  185. id: 2,
  186. name: "中台配置列表",
  187. class:"album-name-against",
  188. url:"{!! yzWebFullUrl('plugin.yz-supply.admin.middleground-configuration.index') !!}"
  189. },
  190. {
  191. id: 3,
  192. name: "支付设置",
  193. class:"album-name-against",
  194. url:"{!! yzWebFullUrl('plugin.yz-supply.admin.set.pay') !!}"
  195. },
  196. {
  197. id: 4,
  198. name: "快递匹配",
  199. class:"album-name-against",
  200. url:"{!! yzWebFullUrl('plugin.yz-supply.admin.express-matching.index') !!}"
  201. },
  202. {
  203. id: 5,
  204. name: "导入分类",
  205. class:"album-name-against",
  206. url:"{!! yzWebFullUrl('plugin.yz-supply.admin.import-categorys.index') !!}"
  207. },
  208. ],
  209. province_list:[],
  210. city_list:[],
  211. district_list:[],
  212. street_list:[],
  213. areaLoading:false,
  214. push_url:"",
  215. form:{
  216. is_price_zero:0,
  217. shop_name : "供应链",
  218. is_close_auto_update : 1,
  219. is_close_auto_update_market : 1,
  220. is_close_auto_update_cost : 1,
  221. is_close_auto_detail : 1,
  222. is_close_auto_image : 1,
  223. is_close_auto_invoicing:1,
  224. create_brand : 0,
  225. create_category : 0,
  226. control_method : 0,
  227. profit_radio : 100,
  228. goods_split : 1,
  229. freight_set : 0,
  230. freight_method : 0,
  231. is_camp_on:0,
  232. round_price:[],
  233. },
  234. }
  235. },
  236. mounted() {
  237. this.initProvince(0);
  238. this.getData();
  239. },
  240. methods: {
  241. skipUrl(item){
  242. window.location.href = item.url
  243. },
  244. getData(){
  245. let loading = this.$loading({
  246. target: document.querySelector(".content"),
  247. background: 'rgba(0, 0, 0, 0)'
  248. });
  249. this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.set.get-set') !!}').then(function (response){
  250. this.push_url = response.data.data.push_url
  251. this.get_order_url = response.data.data.get_order_url
  252. if(response.data.data.set != null){
  253. if (response.data.data.set.round_price == undefined) response.data.data.set.round_price = [];
  254. this.form = response.data.data.set;
  255. let province_id = response.data.data.set.province_id;
  256. let city_id = response.data.data.set.city_id;
  257. let district_id = response.data.data.set.district_id;
  258. let street_id = response.data.data.set.street_id;
  259. this.changeProvince(province_id);
  260. this.changeCity(city_id);
  261. this.changeDistrict(district_id)
  262. this.form.province_id = province_id;
  263. this.form.city_id = city_id;
  264. this.form.district_id = district_id;
  265. this.form.street_id = street_id;
  266. if(response.data.data.set.profit_radio === "") response.data.data.set.profit_radio = 100;
  267. this.form.shop_name = response.data.data.set.shop_name??"供应链";
  268. this.form.is_close_auto_update = parseInt(response.data.data.set.is_close_auto_update);
  269. this.form.is_close_auto_update_market = parseInt(response.data.data.set.is_close_auto_update_market);
  270. this.form.is_close_auto_update_cost = parseInt(response.data.data.set.is_close_auto_update_cost);
  271. this.form.is_close_auto_detail = parseInt(response.data.data.set.is_close_auto_detail);
  272. this.form.is_close_auto_image = parseInt(response.data.data.set.is_close_auto_image);
  273. this.form.is_close_auto_invoicing = parseInt(response.data.data.set.is_close_auto_invoicing);
  274. this.form.create_brand = parseInt(response.data.data.set.create_brand);
  275. this.form.create_category = parseInt(response.data.data.set.create_category);
  276. this.form.control_method = parseInt(response.data.data.set.control_method);
  277. this.form.profit_radio = parseInt(response.data.data.set.profit_radio);
  278. this.form.goods_split = parseInt(response.data.data.set.goods_split);
  279. this.form.freight_set = parseInt(response.data.data.set.freight_set);
  280. this.form.freight_method = parseInt(response.data.data.set.freight_method);
  281. this.form.is_price_zero = parseInt(response.data.data.set.is_price_zero);
  282. this.$set(this.form, 'is_camp_on', response.data.data.set.is_camp_on ?? 0);
  283. }
  284. loading.close();
  285. },function (response) {
  286. loading.close();
  287. this.$message({message: response.data.msg,type: 'error'});
  288. })
  289. },
  290. submit() {
  291. let loading = this.$loading({
  292. target: document.querySelector(".content"),
  293. background: 'rgba(0, 0, 0, 0)'
  294. });
  295. this.$http.post('{!! yzWebFullUrl('plugin.yz-supply.admin.set.save') !!}', {'set': this.form}).then(function (response) {
  296. if (response.data.result) {
  297. this.$message({message: response.data.msg, type: 'success'});
  298. // this.getData();
  299. } else {
  300. this.$message({message: response.data.msg, type: 'error'});
  301. }
  302. loading.close();
  303. // location.reload();
  304. }, function (response) {
  305. this.$message({message: response.data.msg, type: 'error'});
  306. })
  307. },
  308. initProvince(val) {
  309. this.areaLoading = true;
  310. this.$http.get("{!! yzWebUrl('area.list.init', ['area_ids'=>'']) !!}"+val).then(response => {
  311. this.province_list = response.data.data;
  312. this.areaLoading = false;
  313. }, response => {
  314. this.areaLoading = false;
  315. });
  316. },
  317. changeProvince(val) {
  318. this.city_list = [];
  319. this.district_list = [];
  320. this.street_list = [];
  321. this.form.city_id = "";
  322. this.form.district_id = "";
  323. this.form.street_id = "";
  324. this.areaLoading = true;
  325. let url = "<?php echo yzWebUrl('area.list', ['parent_id'=> '']); ?>" + val;
  326. this.$http.get(url).then(response => {
  327. if (response.data.data.length) {
  328. this.city_list = response.data.data;
  329. } else {
  330. this.city_list = null;
  331. }
  332. this.areaLoading = false;
  333. }, response => {
  334. this.areaLoading = false;
  335. });
  336. },
  337. // 市改变
  338. changeCity(val) {
  339. console.log("bb"+this.form.city_id);
  340. this.district_list = [];
  341. this.street_list = [];
  342. this.form.district_id = "";
  343. this.form.street_id = "";
  344. this.areaLoading = true;
  345. let url = "<?php echo yzWebUrl('area.list', ['parent_id'=> '']); ?>" + val;
  346. this.$http.get(url).then(response => {
  347. if (response.data.data.length) {
  348. this.district_list = response.data.data;
  349. } else {
  350. this.district_list = null;
  351. }
  352. this.areaLoading = false;
  353. }, response => {
  354. this.areaLoading = false;
  355. });
  356. },
  357. // 区改变
  358. changeDistrict(val) {
  359. console.log(val)
  360. this.street_list = [];
  361. this.form.street_id = "";
  362. this.areaLoading = true;
  363. let url = "<?php echo yzWebUrl('area.list', ['parent_id'=> '']); ?>" + val;
  364. this.$http.get(url).then(response => {
  365. if (response.data.data.length) {
  366. this.street_list = response.data.data;
  367. } else {
  368. this.street_list = null;
  369. }
  370. this.areaLoading = false;
  371. }, response => {
  372. this.areaLoading = false;
  373. });
  374. },
  375. },
  376. });
  377. </script>
  378. @endsection