baa9106848704a25eab0d60a1c8e0c90.json 15 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\pc\\components\\delivery.vue?vue&type=style&index=0&id=40ab68fa&lang=scss&scoped=true","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\kefu\\pc\\components\\delivery.vue","mtime":1761614939025},{"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:DQouZm9ybS1pdGVtIHsNCiAgd2lkdGg6IDEwMCU7DQp9DQo="},{"version":3,"sources":["delivery.vue"],"names":[],"mappings":";AA+WA;AACA;AACA","file":"delivery.vue","sourceRoot":"src/pages/kefu/pc/components","sourcesContent":["<template>\r\n <div>\r\n <el-form ref=\"formValidate\" :model=\"formValidate\" :rules=\"ruleInline\" inline>\r\n <el-form-item label=\"选择类型:\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <el-radio-group v-model=\"formValidate.gender\">\r\n <el-radio :label=\"item.key\" v-for=\"(item, index) in radioList\" :key=\"index\">{{ item.title }}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item\r\n v-if=\"formValidate.gender == 1\"\r\n label=\"发货类型:\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n :key=\"'test0'\"\r\n >\r\n <el-radio-group v-model=\"formValidate.shipStatus\">\r\n <el-radio :label=\"item.key\" v-for=\"(item, index) in shipType\" :key=\"index\">{{ item.title }}</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <!-- 发货手动填写 -->\r\n <div v-if=\"formValidate.gender == 1 && formValidate.shipStatus == 1\" :key=\"'test1'\">\r\n <el-form-item\r\n label=\"快递公司:\"\r\n prop=\"logisticsCode\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n >\r\n <el-select\r\n v-model=\"formValidate.logisticsCode\"\r\n filterable\r\n placeholder=\"请选择\"\r\n @change=\"bindChange\"\r\n :label-in-value=\"true\"\r\n style=\"width: 100%\"\r\n >\r\n <el-option\r\n :value=\"item.code\"\r\n v-for=\"(item, index) in logisticsList\"\r\n :key=\"index\"\r\n :label=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"快递单号:\" prop=\"number\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <el-input v-model=\"formValidate.number\" placeholder=\"请输入快递单号\" style=\"width: 100%\"></el-input>\r\n </el-form-item>\r\n <el-form-item label=\"\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <div style=\"color: #c4c4c4\">顺丰请输入单号:收件人或寄件人手机号后四位,</div>\r\n <div style=\"color: #c4c4c4\">例如:SF000000000000:3941</div>\r\n </el-form-item>\r\n </div>\r\n <!-- 电子面单打印 -->\r\n <div v-if=\"formValidate.gender == 1 && formValidate.shipStatus == 2\" :key=\"'test2'\">\r\n <el-form-item\r\n label=\"快递公司:\"\r\n prop=\"logisticsCode\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n >\r\n <el-select\r\n v-model=\"formValidate.logisticsCode\"\r\n placeholder=\"请选择\"\r\n style=\"width: 100%\"\r\n @change=\"bindChange\"\r\n filterable\r\n :label-in-value=\"true\"\r\n >\r\n <el-option\r\n :value=\"item.code\"\r\n v-for=\"(item, index) in logisticsList\"\r\n :key=\"index\"\r\n :label=\"item.value\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item\r\n label=\"电子面单:\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n v-if=\"orderTempList.length > 0\"\r\n >\r\n <el-select v-model=\"formValidate.electronic\" placeholder=\"请选择电子面单\" style=\"width: 80%\">\r\n <el-option\r\n :value=\"item.temp_id\"\r\n v-for=\"(item, index) in orderTempList\"\r\n :key=\"index\"\r\n :label=\"item.title\"\r\n ></el-option>\r\n </el-select>\r\n <el-button style=\"flex: 1; margin-left: 21px\" v-db-click @click=\"lookImg\">预览</el-button>\r\n <viewer :images=\"orderTempList\" class=\"viewer\" ref=\"viewer\" @inited=\"inited\" style=\"display: none\">\r\n <img v-for=\"src in orderTempList\" :src=\"src.pic\" :key=\"src.id\" class=\"image\" />\r\n </viewer>\r\n </el-form-item>\r\n <el-form-item label=\"寄件人姓名:\" prop=\"sendName\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <el-input v-model=\"formValidate.sendName\" placeholder=\"请输入寄件人姓名\" style=\"width: 100%\"></el-input>\r\n </el-form-item>\r\n <el-form-item\r\n label=\"寄件人电话:\"\r\n prop=\"sendPhone\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n >\r\n <el-input v-model=\"formValidate.sendPhone\" placeholder=\"请输入寄件人电话\" style=\"width: 100%\"></el-input>\r\n </el-form-item>\r\n <el-form-item\r\n label=\"寄件人地址:\"\r\n prop=\"sendAddress\"\r\n class=\"form-item\"\r\n label-position=\"right\"\r\n label-width=\"100px\"\r\n >\r\n <el-input v-model=\"formValidate.sendAddress\" placeholder=\"请输入寄件人地址\" style=\"width: 100%\"></el-input>\r\n </el-form-item>\r\n </div>\r\n <!-- 送货 -->\r\n <div v-if=\"formValidate.gender == 2\" :key=\"'test3'\">\r\n <el-form-item label=\"选择送货人:\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <el-select v-model=\"formValidate.postPeople\" placeholder=\"选择送货人\" style=\"width: 100%\">\r\n <el-option\r\n :value=\"item.id\"\r\n v-for=\"(item, index) in deliveryList\"\r\n :key=\"index\"\r\n :label=\"item.nickname\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </div>\r\n <div v-if=\"formValidate.gender == 3\">\r\n <el-form-item label=\"备注:\" props=\"msg\" class=\"form-item\" label-position=\"right\" label-width=\"100px\">\r\n <el-input placeholder=\"备注\" v-model=\"formValidate.msg\" />\r\n </el-form-item>\r\n </div>\r\n <div class=\"mask-footer\">\r\n <el-button type=\"primary\" v-db-click @click=\"handleSubmit('formValidate')\">提交</el-button>\r\n <el-button v-db-click @click=\"close\">取消</el-button>\r\n </div>\r\n </el-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { orderExport, orderTemp, orderDeliveryAll, orderDelivery, getSender } from '@/api/kefu';\r\nexport default {\r\n name: 'delivery',\r\n props: {\r\n isShow: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n orderId: {\r\n type: String | Number,\r\n default: '',\r\n },\r\n virtualType: {\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n watch: {\r\n 'formValidate.shipStatus': {\r\n handler(nVal, oVal) {\r\n if (nVal == 2 && !this.formValidate.sendName) {\r\n getSender().then((res) => {\r\n this.formValidate.sendName = res.data.to_name;\r\n this.formValidate.sendPhone = res.data.to_tel;\r\n this.formValidate.sendAddress = res.data.to_add;\r\n });\r\n }\r\n this.$refs['formValidate'].resetFields();\r\n },\r\n deep: true,\r\n },\r\n 'formValidate.gender': {\r\n handler(nVal, oVal) {\r\n this.$refs['formValidate'].resetFields();\r\n },\r\n deep: true,\r\n },\r\n virtualType: {\r\n handler(nVal, oVal) {\r\n if (nVal == 3) this.formValidate.gender = 3;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n shipType: [\r\n {\r\n key: 1,\r\n title: '手动填写',\r\n },\r\n {\r\n key: 2,\r\n title: '电子面单打印',\r\n },\r\n ],\r\n radioList: [\r\n {\r\n key: 1,\r\n title: '发货',\r\n },\r\n {\r\n key: 2,\r\n title: '送货',\r\n },\r\n {\r\n key: 3,\r\n title: '虚拟',\r\n },\r\n ],\r\n ruleInline: {\r\n logisticsCode: [{ required: true, message: '请选择快递公司', trigger: 'change' }],\r\n number: [{ required: true, message: '请填写快递单号', trigger: 'change' }],\r\n sendName: [{ required: true, message: '请填写寄件人姓名', trigger: 'change' }],\r\n sendPhone: [\r\n { required: true, message: '请填写寄件人手机', trigger: 'change' },\r\n { pattern: /^1[3456789]\\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },\r\n ],\r\n sendAddress: [{ required: true, message: '请填写寄件人地址', trigger: 'change' }],\r\n msg: [{ required: true, message: '请填写备注信息', trigger: 'change' }],\r\n },\r\n formValidate: {\r\n gender: 1,\r\n shipStatus: 1,\r\n logisticsCode: '', // 快递公司编号\r\n logisticsName: '', // 快递公司名称\r\n number: '', // 快递单号\r\n electronic: '', //电子面单\r\n sendName: '', //寄件人姓名\r\n sendPhone: '', // 寄件人电话\r\n sendAddress: '', //寄件人地址\r\n postPeople: '', // 配送员\r\n msg: '', // 备注\r\n },\r\n logisticsList: [],\r\n orderTempList: [],\r\n deliveryList: [],\r\n };\r\n },\r\n mounted() {\r\n this.getOrderExport();\r\n this.getDelivery();\r\n },\r\n methods: {\r\n // 获取配送人\r\n getDelivery() {\r\n orderDeliveryAll().then((res) => {\r\n this.deliveryList = res.data;\r\n });\r\n },\r\n //查看大图\r\n inited(viewer) {\r\n this.$viewer = viewer;\r\n },\r\n //物流公司\r\n getOrderExport() {\r\n orderExport().then((res) => {\r\n this.logisticsList = res.data;\r\n });\r\n },\r\n handleSubmit(name) {\r\n if (this.formValidate.gender == 1) {\r\n this.$refs[name].validate((valid) => {\r\n let paramsData = {};\r\n paramsData.type = this.formValidate.gender;\r\n paramsData.express_record_type = parseFloat(this.formValidate.shipStatus);\r\n paramsData.delivery_name = this.formValidate.logisticsName;\r\n paramsData.delivery_code = this.formValidate.logisticsCode;\r\n if (valid) {\r\n // 手动\r\n if (this.formValidate.gender == 1 && this.formValidate.shipStatus == 1) {\r\n paramsData.delivery_id = this.formValidate.number;\r\n }\r\n // 电子\r\n if (this.formValidate.gender == 1 && this.formValidate.shipStatus == 2) {\r\n paramsData.to_name = this.formValidate.sendName;\r\n paramsData.to_tel = this.formValidate.sendPhone;\r\n paramsData.to_addr = this.formValidate.sendAddress;\r\n paramsData.express_temp_id = this.formValidate.electronic;\r\n }\r\n orderDelivery(this.orderId, paramsData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('ok');\r\n })\r\n .catch((error) => {\r\n this.$message.error(error.msg);\r\n });\r\n } else {\r\n }\r\n });\r\n }\r\n if (this.formValidate.gender == 2) {\r\n let people = {};\r\n this.deliveryList.forEach((el, index) => {\r\n if (el.id == this.formValidate.postPeople) {\r\n people = el;\r\n }\r\n });\r\n orderDelivery(this.orderId, {\r\n type: this.formValidate.gender,\r\n sh_delivery_name: people.wx_name,\r\n sh_delivery_id: people.phone,\r\n sh_delivery_uid: people.id,\r\n })\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('ok');\r\n })\r\n .catch((error) => {\r\n this.$message.error(error.msg);\r\n });\r\n }\r\n if (this.formValidate.gender == 3) {\r\n orderDelivery(this.orderId, {\r\n type: this.formValidate.gender,\r\n remark: this.formValidate.msg,\r\n })\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.$emit('ok');\r\n })\r\n .catch((error) => {\r\n this.$message.error(error.msg);\r\n });\r\n }\r\n },\r\n close() {\r\n this.$emit('close');\r\n },\r\n // 物流选中\r\n bindChange(val) {\r\n let deliveryItem = this.logisticsList.find((item) => {\r\n return item.code == val;\r\n });\r\n this.formValidate.logisticsName = deliveryItem.value;\r\n if (this.formValidate.shipStatus == 2) {\r\n orderTemp({\r\n com: val.value,\r\n }).then((res) => {\r\n this.orderTempList = res.data.data;\r\n });\r\n }\r\n },\r\n lookImg() {\r\n if (this.formValidate.electronic) {\r\n this.orderTempList.forEach((el, index) => {\r\n if (el.temp_id == this.formValidate.electronic) {\r\n this.$viewer.view(index);\r\n }\r\n });\r\n } else {\r\n this.$message.error('请选择电子面单');\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.form-item {\r\n width: 100%;\r\n}\r\n</style>\r\n"]}]}