48363ef177d495828768cc9f4970d3ad.json 20 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\components\\freightTemplate\\index.vue?vue&type=style&index=0&id=6c602140&lang=scss&scoped=true","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\components\\freightTemplate\\index.vue","mtime":1761614938955},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\css-loader\\index.js","mtime":1761614929364},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1761614937403},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\postcss-loader\\src\\index.js","mtime":1761614935133},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1761614936391},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQouaXZ1LXRhYmxlLXdyYXBwZXIgew0KICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNkY2RlZTI7DQogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkZWUyOw0KfQ0KLml2dS10YWJsZS1ib3JkZXIgdGgsDQouaXZ1LXRhYmxlLWJvcmRlciB0ZCB7DQogIHBhZGRpbmc6IDAgMTBweCAhaW1wb3J0YW50Ow0KfQ0KLmFkZFRvcCB7DQogIG1hcmdpbi10b3A6IDE1cHg7DQp9DQoucmFkaW8gew0KICBwYWRkaW5nOiA1cHggMDsNCn0NCi5pdnUtaW5wdXQtbnVtYmVyIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQouZnJlZV90aXBzIHsNCiAgZm9udC1zaXplOiAxMnB4Ow0KICBjb2xvcjogI2NjYzsNCn0NCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAsdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/freightTemplate","sourcesContent":["<template>\r\n <div>\r\n <el-dialog\r\n :visible.sync=\"isTemplate\"\r\n title=\"运费模版\"\r\n width=\"1000px\"\r\n if=\"isTemplate\"\r\n @on-cancel=\"cancel\"\r\n @closed=\"close\"\r\n >\r\n <div class=\"Modals\">\r\n <el-form class=\"form\" ref=\"formData\" label-width=\"120px\" label-position=\"right\">\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"18\" :lg=\"18\" :md=\"18\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item label=\"模板名称:\" prop=\"name\">\r\n <el-input type=\"text\" placeholder=\"请输入模板名称\" :maxlength=\"20\" v-model=\"formData.name\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"18\" :lg=\"18\" :md=\"18\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item label=\"计费方式:\" props=\"state\" label-for=\"state\">\r\n <el-radio-group class=\"radio\" v-model=\"formData.type\" @input=\"changeRadio\" element-id=\"state\">\r\n <el-radio :label=\"1\">按件数</el-radio>\r\n <el-radio :label=\"2\">按重量</el-radio>\r\n <el-radio :label=\"3\">按体积</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"24\" :lg=\"24\" :md=\"24\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item class=\"label\" label=\"配送区域及运费:\" props=\"state\" label-for=\"state\">\r\n <el-table ref=\"table\" :data=\"templateList\" class=\"ivu-mt\" empty-text=\"暂无数据\" border>\r\n <el-table-column label=\"可配送区域\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"templateList[scope.$index].regionName\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label=\"formData.type === 2 ? '首件重量(KG)' : formData.type === 3 ? '首件体积(m³)' : '首件'\"\r\n minWidth=\"100\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"templateList[scope.$index].first\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"运费(元)\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"templateList[scope.$index].price\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label=\"formData.type === 2 ? '续件重量(KG)' : formData.type === 3 ? '续件体积(m³)' : '续件'\"\r\n minWidth=\"100\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"templateList[scope.$index].continue\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"续费(元)\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"templateList[scope.$index].continue_price\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a\r\n v-if=\"scope.row.regionName !== '默认全国'\"\r\n v-db-click\r\n @click=\"delCity(scope.row, '配送区域', scope.$index, 1)\"\r\n >删除</a\r\n >\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <el-row class=\"addTop\">\r\n <el-col>\r\n <el-button type=\"primary\" icon=\"md-add\" v-db-click @click=\"addCity(1)\">添加配送区域</el-button>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"24\" :lg=\"24\" :md=\"24\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item label=\"指定包邮:\" prop=\"store_name\" label-for=\"store_name\">\r\n <el-radio-group class=\"radio\" v-model=\"formData.appoint_check\">\r\n <el-radio :label=\"1\">开启</el-radio>\r\n <el-radio :label=\"0\">关闭</el-radio>\r\n </el-radio-group>\r\n <el-table\r\n ref=\"table\"\r\n :data=\"appointList\"\r\n class=\"addTop mt10\"\r\n empty-text=\"暂无数据\"\r\n border\r\n v-if=\"formData.appoint_check === 1\"\r\n >\r\n <el-table-column label=\"选择区域\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"appointList[scope.$index].placeName\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column\r\n :label=\"formData.type === 2 ? '包邮重量' : formData.type === 3 ? '包邮体积(m³)' : '包邮件数'\"\r\n minWidth=\"100\"\r\n >\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"appointList[scope.$index].a_num\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"包邮金额(元)\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input type=\"number\" v-model=\"appointList[scope.$index].a_price\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a\r\n v-if=\"scope.row.regionName !== '默认全国'\"\r\n v-db-click\r\n @click=\"delCity(scope.row, '配送区域', scope.$index, 2)\"\r\n >删除</a\r\n >\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div v-if=\"formData.appoint_check === 1\" class=\"free_tips\">\r\n 指定地区需同时满足包邮(件数/重量/体积)和包邮金额的条件,才可实现包邮\r\n </div>\r\n <el-row class=\"addTop mt5\" v-if=\"formData.appoint_check === 1\">\r\n <el-col>\r\n <el-button type=\"primary\" icon=\"md-add\" v-db-click @click=\"addCity(2)\">添加包邮区域</el-button>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"24\" :lg=\"24\" :md=\"24\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item label=\"指定不送达:\" prop=\"store_name\" label-for=\"store_name\">\r\n <el-radio-group class=\"radio\" v-model=\"formData.no_delivery_check\">\r\n <el-radio :label=\"1\">开启</el-radio>\r\n <el-radio :label=\"0\">关闭</el-radio>\r\n </el-radio-group>\r\n <el-table\r\n ref=\"table\"\r\n :data=\"noDeliveryList\"\r\n class=\"addTop mt10\"\r\n empty-text=\"暂无数据\"\r\n border\r\n v-if=\"formData.no_delivery_check === 1\"\r\n >\r\n <el-table-column label=\"选择区域\" minWidth=\"100\">\r\n <template slot-scope=\"scope\">\r\n <el-input v-model=\"noDeliveryList[scope.$index].placeName\" />\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\">\r\n <template slot-scope=\"scope\">\r\n <a\r\n v-if=\"scope.row.regionName !== '默认全国'\"\r\n v-db-click\r\n @click=\"delCity(scope.row, '配送区域', scope.$index, 3)\"\r\n >删除</a\r\n >\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <el-row class=\"addTop\" v-if=\"formData.no_delivery_check === 1\">\r\n <el-col>\r\n <el-button type=\"primary\" icon=\"md-add\" v-db-click @click=\"addCity(3)\">添加不送达区域</el-button>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col :xl=\"18\" :lg=\"18\" :md=\"18\" :sm=\"24\" :xs=\"24\">\r\n <el-form-item label=\"排序:\" prop=\"store_name\" label-for=\"store_name\">\r\n <el-input-number\r\n :controls=\"false\"\r\n :min=\"0\"\r\n placeholder=\"输入值越大越靠前\"\r\n v-model=\"formData.sort\"\r\n ></el-input-number>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"24\">\r\n <el-col>\r\n <el-form-item prop=\"store_name\" label-for=\"store_name\">\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit\">{{\r\n id ? '立即修改' : '立即提交'\r\n }}</el-button>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </div>\r\n <div slot=\"footer\"></div>\r\n </el-dialog>\r\n <city ref=\"city\" @selectCity=\"selectCity\" :type=\"type\" :selectArr=\"selectArr\"></city>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport city from '@/components/freightTemplate/city';\r\nimport { templatesSaveApi, shipTemplatesApi } from '@/api/setting';\r\nexport default {\r\n name: 'freightTemplate',\r\n components: { city },\r\n props: {},\r\n data() {\r\n let that = this;\r\n return {\r\n isTemplate: false,\r\n templateList: [\r\n {\r\n region: [\r\n {\r\n name: '默认全国',\r\n city_id: 0,\r\n },\r\n ],\r\n regionName: '默认全国',\r\n first: 1,\r\n price: 0,\r\n continue: 1,\r\n continue_price: 0,\r\n },\r\n ],\r\n appointList: [],\r\n noDeliveryList: [],\r\n type: 1,\r\n formData: {\r\n type: 1,\r\n sort: 0,\r\n name: '',\r\n appoint_check: 0,\r\n no_delivery_check: 0,\r\n },\r\n id: 0,\r\n\r\n addressModal: false,\r\n indeterminate: true,\r\n checkAll: false,\r\n checkAllGroup: [],\r\n activeCity: -1,\r\n provinceAllGroup: [],\r\n index: -1,\r\n displayData: '',\r\n currentProvince: '',\r\n selectArr: [], // 传递选中的城市\r\n noShippingArr: [], // 不包邮选择的城市数据\r\n yesShippingArr: [], // 包邮选择的城市数据\r\n noDeliveryArr: [], // 不送达选择的城市数据\r\n };\r\n },\r\n computed: {},\r\n methods: {\r\n close() {\r\n this.$emit('close');\r\n },\r\n editFrom(id) {\r\n this.id = id;\r\n shipTemplatesApi(id).then((res) => {\r\n let formData = res.data.formData;\r\n this.templateList = res.data.templateList;\r\n this.appointList = res.data.appointList;\r\n this.noDeliveryList = res.data.noDeliveryList;\r\n this.formData = {\r\n type: formData.type,\r\n sort: formData.sort,\r\n name: formData.name,\r\n appoint_check: formData.appoint_check,\r\n no_delivery_check: formData.no_delivery_check,\r\n };\r\n // this.headerType();\r\n });\r\n },\r\n selectCity: function (data, type) {\r\n let cityName = data\r\n .map(function (item) {\r\n return item.name;\r\n })\r\n .join(';');\r\n switch (type) {\r\n case 1:\r\n this.templateList.push({\r\n region: data,\r\n regionName: cityName,\r\n first: 1,\r\n price: 0,\r\n continue: 1,\r\n continue_price: 0,\r\n });\r\n this.noShippingArr = this.noShippingArr.concat(data);\r\n break;\r\n case 2:\r\n this.appointList.push({\r\n place: data,\r\n placeName: cityName,\r\n a_num: 0,\r\n a_price: 0,\r\n });\r\n this.yesShippingArr = this.yesShippingArr.concat(data);\r\n break;\r\n case 3:\r\n this.noDeliveryList.push({\r\n place: data,\r\n placeName: cityName,\r\n });\r\n this.noDeliveryArr = this.noDeliveryArr.concat(data);\r\n break;\r\n }\r\n },\r\n // 单独添加配送区域\r\n addCity(type) {\r\n this.selectArr = type == 1 ? this.noShippingArr : type == 2 ? this.yesShippingArr : this.noDeliveryArr;\r\n this.type = type;\r\n this.$refs.city.getCityList();\r\n this.$refs.city.addressModal = true;\r\n },\r\n changeRadio() {},\r\n // 提交\r\n handleSubmit: function () {\r\n let that = this;\r\n if (!that.formData.name.trim().length) {\r\n return that.$message.error('请填写模板名称');\r\n }\r\n for (let i = 0; i < that.templateList.length; i++) {\r\n if (that.templateList[i].first <= 0) {\r\n return that.$message.error('首件/重量/体积应大于0');\r\n }\r\n if (that.templateList[i].price < 0) {\r\n return that.$message.error('运费应大于等于0');\r\n }\r\n if (that.templateList[i].continue <= 0) {\r\n return that.$message.error('续件/重量/体积应大于0');\r\n }\r\n if (that.templateList[i].continue_price < 0) {\r\n return that.$message.error('续费应大于等于0');\r\n }\r\n }\r\n if (that.formData.appoint_check === 1) {\r\n for (let i = 0; i < that.appointList.length; i++) {\r\n if (that.appointList[i].a_num <= 0) {\r\n return that.$message.error('包邮件数应大于0');\r\n }\r\n if (that.appointList[i].a_price < 0) {\r\n return that.$message.error('包邮金额应大于等于0');\r\n }\r\n }\r\n }\r\n let data = {\r\n appoint_info: that.appointList,\r\n region_info: that.templateList,\r\n no_delivery_info: that.noDeliveryList,\r\n sort: that.formData.sort,\r\n type: that.formData.type,\r\n name: that.formData.name,\r\n appoint: that.formData.appoint_check,\r\n no_delivery: that.formData.no_delivery_check,\r\n };\r\n templatesSaveApi(that.id, data).then((res) => {\r\n this.isTemplate = false;\r\n // this.$parent.getList();\r\n this.formData = {\r\n type: 1,\r\n sort: 0,\r\n name: '',\r\n appoint_check: 0,\r\n no_delivery_check: 0,\r\n };\r\n this.appointList = [];\r\n this.noDeliveryList = [];\r\n this.addressModal = false;\r\n this.templateList = [\r\n {\r\n region: [\r\n {\r\n name: '默认全国',\r\n city_id: 0,\r\n },\r\n ],\r\n regionName: '默认全国',\r\n first: 1,\r\n price: 0,\r\n continue: 1,\r\n continue_price: 0,\r\n },\r\n ];\r\n this.$emit('addSuccess');\r\n this.$message.success(res.msg);\r\n });\r\n },\r\n // 删除\r\n delCity(row, tit, num, type) {\r\n if (type === 1) {\r\n this.templateList.splice(num, 1);\r\n } else if (type == 2) {\r\n this.appointList.splice(num, 1);\r\n } else {\r\n this.noDeliveryList.splice(num, 1);\r\n }\r\n // let delfromData = {\r\n // title: tit,\r\n // num: num,\r\n // url: `setting/shipping_templates/del/${row.id}`,\r\n // method: \"DELETE\",\r\n // ids: \"\",\r\n // };\r\n // this.$modalSure(delfromData)\r\n // .then((res) => {\r\n // this.$message.success(res.msg);\r\n // })\r\n // .catch((res) => {\r\n // this.$message.error(res.msg);\r\n // });\r\n },\r\n // 关闭\r\n cancel() {\r\n this.noShippingArr = [];\r\n this.noDeliveryArr = [];\r\n this.yesShippingArr = [];\r\n this.selectArr = [];\r\n this.formData = {\r\n type: 1,\r\n sort: 0,\r\n name: '',\r\n appoint_check: 0,\r\n no_delivery_check: 0,\r\n };\r\n this.appointList = [];\r\n this.noDeliveryList = [];\r\n this.addressModal = false;\r\n this.templateList = [\r\n {\r\n region: [\r\n {\r\n name: '默认全国',\r\n city_id: 0,\r\n },\r\n ],\r\n regionName: '默认全国',\r\n first: 0,\r\n price: 0,\r\n continue: 0,\r\n continue_price: 0,\r\n },\r\n ];\r\n },\r\n\r\n address() {\r\n this.addressModal = true;\r\n },\r\n enter(index) {\r\n this.activeCity = index;\r\n },\r\n leave() {\r\n this.activeCity = null;\r\n },\r\n },\r\n mounted() {},\r\n};\r\n</script>\r\n<style lang=\"scss\" scoped>\r\n.ivu-table-wrapper {\r\n border-left: 1px solid #dcdee2;\r\n border-top: 1px solid #dcdee2;\r\n}\r\n.ivu-table-border th,\r\n.ivu-table-border td {\r\n padding: 0 10px !important;\r\n}\r\n.addTop {\r\n margin-top: 15px;\r\n}\r\n.radio {\r\n padding: 5px 0;\r\n}\r\n.ivu-input-number {\r\n width: 100%;\r\n}\r\n.free_tips {\r\n font-size: 12px;\r\n color: #ccc;\r\n}\r\n</style>\r\n"]}]}