Browse Source

2024-12-3

cmy 1 year ago
parent
commit
b5440f3743

+ 1 - 1
.env.dev

@@ -8,4 +8,4 @@ VUE_APP_WS_KEFU_URL=''
 # socket 系统连接地址
 VUE_APP_WS_ADMIN_URL=''
 # 接口请求地址
-VUE_APP_API_URL='https://test.pro.wuht.net/supplierapi'
+VUE_APP_API_URL='https://dbyt.qiniu1314.com/supplierapi'

+ 41 - 0
src/api/order.js

@@ -402,4 +402,45 @@ export function getRefundOrderFrom(id) {
     });
 };
 
+// 进货单
+export function orderShelvesLst(data) {
+    return request({
+        url: `/order/shelves_lst`,
+        method: 'get',
+		params: data
+    });
+};
+//货架
+export function shelves_lst(data) {
+    return request({
+        url: `/shelves/lst`,
+        method: 'get',
+		params: data
+    });
+};
 
+//审核订单
+export function orderExamine(data) {
+    return request({
+        url: `/order/examine`,
+        method: 'post',
+		data: data
+    });
+};
+//审核进货订单
+export function shelves_verify(data) {
+    return request({
+        url: `/order/shelves_verify`,
+        method: 'post',
+		data: data
+    });
+};
+
+//省市区订单
+export function order_statistics(data) {
+    return request({
+        url: `/order_statistics`,
+        method: 'get',
+		params: data
+    });
+};

+ 47 - 1
src/pages/capital/setting/index.vue

@@ -82,6 +82,42 @@
             </div>
           </div>
         </FormItem>
+		<FormItem label="其他支付方式:" prop="offline_name">
+		  <Input
+		    maxlength="32"
+		    type="text"
+		    v-model="formItem.offline_name"
+		    placeholder="请填写其他收款方式名称"
+		    class="input"
+		  ></Input>
+		</FormItem>
+		<FormItem label="支付方式说明:" prop="offline_mark">
+		  <Input
+		    maxlength="32"
+		    type="text"
+		    v-model="formItem.offline_mark"
+		    placeholder="填写支付方式说明"
+		    class="input"
+		  ></Input>
+		</FormItem>
+		<FormItem label="其他收款方式收款码:" class="imgbox">
+		  <div class="pictrueBox" @click="modalPicTap('dan', 'qt')">
+		    <div class="pictrue" v-if="formItem.offline_img">
+		      <img v-lazy="formItem.offline_img" />
+		      <Input
+		        v-model="formItem.offline_img"
+		        style="display: none"
+		      ></Input>
+		    </div>
+		    <div class="upLoad acea-row row-center-wrapper" v-else>
+		      <Input
+		        v-model="formItem.offline_img"
+		        style="display: none"
+		      ></Input>
+		      <Icon type="ios-camera-outline" size="26" />
+		    </div>
+		  </div>
+		</FormItem>
       </Form>
     </div>
     <Card :bordered="false" dis-hover class="ive-mt save">
@@ -143,6 +179,9 @@ export default {
         alipay_qrcode_url: '', //支付宝
         wechat: '',
         wechat_qrcode_url: '', //微信
+		offline_name: '',
+		offline_mark: '',
+		offline_img: '',
       },
       rules: {
         bank_address: [
@@ -160,6 +199,7 @@ export default {
         bank_code: [
           {
             validator: (rule, value, callback) => {
+				console.log(value,'value')
               if (
                 value === '' ||
                 (typeof value === 'number' && value === parseInt(value))
@@ -182,11 +222,14 @@ export default {
     getList() {
       settingApi().then((res) => {
         this.formItem.bank_address = res.data.bank_address;
-        this.formItem.bank_code = res.data.bank_code;
+        this.formItem.bank_code = +res.data.bank_code;
         this.formItem.alipay_account = res.data.alipay_account;
         this.formItem.alipay_qrcode_url = res.data.alipay_qrcode_url;
         this.formItem.wechat = res.data.wechat;
         this.formItem.wechat_qrcode_url = res.data.wechat_qrcode_url;
+        this.formItem.offline_name = res.data.offline_name;
+        this.formItem.offline_mark = res.data.offline_mark;
+        this.formItem.offline_img = res.data.offline_img;
       });
     },
     save(name) {
@@ -211,6 +254,9 @@ export default {
         case 'alipay':
           this.formItem.alipay_qrcode_url = pc.att_dir;
           break;
+		case 'qt':
+		  this.formItem.offline_img = pc.att_dir;
+		  break;
       }
       this.modalPic = false;
     },

+ 298 - 0
src/pages/index/order.vue

@@ -0,0 +1,298 @@
+<template>
+	<div>
+		<Card :bordered="false" dis-hover class="mt15">
+			<Form ref="orderData" :model="orderData" :label-width="labelWidth" :label-position="labelPosition"
+				class="tabform" @submit.native.prevent>
+				<div class="acea-row">
+					<FormItem label="时间选择:">
+						<DatePicker :editable="false" :clearable="true" @on-change="onchangeTime" :value="timeVal"
+							format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start"
+							placeholder="自定义时间" style="width: 250px" class="mr30" :options="options"></DatePicker>
+					</FormItem>
+					<FormItem label="订单审核:">
+						<Select v-model="orderData.status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部">
+							<Option value="-1">全部</Option>
+							<Option value="0">审核中</Option>
+							<Option value="1">已通过</Option>
+							<Option value="2">未通过</Option>
+						</Select>
+					</FormItem>
+					<Button type="primary" @click="userSearchs" class="ml20">查询</Button>
+					<Button @click="reset" class="ml20">重置</Button>
+				</div>
+			</Form>
+		</Card>
+		<Card :bordered="false" dis-hover class="mt15">
+			<Table row-key="id" :load-data="handleLoadData" :columns="columns1" :data="orderList" update-show-children>
+				<template slot-scope="{ row, index }" slot="action">
+					<a v-if="row.hasOwnProperty('level') && row.level < 4" @click="add(row.id)">添加</a>
+					<Divider v-if="row.hasOwnProperty('level') && row.level < 4" type="vertical" />
+					<a @click="edit(row.id)">编辑</a>
+					<Divider v-if="!row.hasOwnProperty('children')" type="vertical" />
+					<a v-if="!row.hasOwnProperty('children')" @click="del(row, '删除城市', index)">删除</a>
+				</template>
+			</Table>
+			<div class="acea-row row-right mt15">
+				<Page :total="total" :current="orderData.page" show-elevator show-total @on-change="pageChange"
+					:page-size="orderData.limit" />
+			</div>
+		</Card>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState
+	} from "vuex";
+	import userDetails from "@/components/userDetails/userDetails";
+	import timeOptions from "@/utils/timeOptions";
+	import util from "@/libs/util";
+	import Setting from "@/setting";
+	import exportExcel from "@/utils/newToExcel.js";
+	import {
+		cityApi
+	} from "@/api/setting";
+	import {
+		order_statistics
+	} from "@/api/order";
+	export default {
+		name: "index",
+		components: {
+			userDetails,
+		},
+		data() {
+			return {
+				columns1: [{
+						title: "编号",
+						key: "id",
+						width: 80,
+					},
+					{
+						title: "地区名称",
+						key: "label",
+						minWidth: 300,
+						tree: true
+					},
+					{
+						title: "订单量",
+						key: "count",
+						minWidth: 100,
+					},
+					{
+						title: "销售额",
+						key: "total_price",
+						minWidth: 120,
+					},
+					{
+						title: "上级名称",
+						key: "parent_name",
+						minWidth: 100,
+					},
+					{
+						title: "操作",
+						slot: "action",
+						// fixed: "right",
+						minWidth: 120,
+					},
+				],
+				showSend: false, //显示审核弹窗
+				isAll: 0,
+				isCheckBox: false,
+				checkUidList: [],
+				timeVal: [],
+				options: timeOptions,
+				// 订单列表
+				orderData: {
+					page: 1,
+					limit: 10,
+					status: "1",
+					start_time: "",
+					end_time: "",
+					parent_id:""
+				},
+				orderList: [],
+				total: 0,
+				loading: false,
+			};
+		},
+		watch: {
+			$route() {
+				if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+					this.getPath();
+				}
+			}
+		},
+		computed: {
+			...mapState("store/layout", ["isMobile"]),
+			labelWidth() {
+				return this.isMobile ? undefined : 80;
+			},
+			labelPosition() {
+				return this.isMobile ? "top" : "right";
+			},
+		},
+		created() {
+			if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+				this.getPath();
+			} else {
+				this.getList();
+			}
+			let data = {
+				pid: 0
+			}
+			this.cityInfo(data);
+		},
+		mounted() {},
+		methods: {
+			// 查看更多订单信息
+			handleLoadData(item, callback) {
+				item._loading = true;
+				let pushData = Object.assign({},this.orderData);
+				pushData.parent_id = item.id;
+				order_statistics(pushData).then(res => {
+					item._loading = false;
+					callback(res.data);
+				}).catch(err => {
+					this.loading = false;
+					this.$Message.error(err.msg)
+				})
+			},
+			//跳转刷新
+			getPath() {
+				this.orderData.page = 1;
+				this.orderData.status = this.$route.query.status;
+				this.getList();
+			},
+			allReset() {
+				this.isAll = 0;
+				this.isCheckBox = false;
+				this.$refs.xTable.setAllCheckboxRow(false);
+				this.checkUidList = [];
+			},
+			allPages(e) {
+				this.isAll = e;
+				if (e == 0) {
+					this.$refs.xTable.toggleAllCheckboxRow();
+					// this.checkboxAll();
+				} else {
+					if (!this.isCheckBox) {
+						this.$refs.xTable.setAllCheckboxRow(true);
+						this.isCheckBox = true;
+						this.isAll = 1;
+					} else {
+						this.$refs.xTable.setAllCheckboxRow(false);
+						this.isCheckBox = false;
+						this.isAll = 0;
+					}
+					this.checkUidList = []
+				}
+			},
+			reset() {
+				this.timeVal = [];
+				this.orderData = {
+					page: 1,
+					limit: 10,
+					status: "1",
+					start_time: "",
+					end_time: "",
+					parent_id:""
+				};
+				this.getList();
+			},
+			getList(id) {
+				this.loading = true;
+				if(id){
+					this.orderData.parent_id = id;
+				}else{
+					this.orderData.parent_id = '';
+				}
+				order_statistics(this.orderData).then(res => {
+					let data = res.data;
+					this.$set(this, 'orderList', data);
+					this.total = 31;
+					this.loading = false;
+				}).catch(err => {
+					this.loading = false;
+					this.$Message.error(err.msg)
+				})
+			},
+			// 具体日期
+			onchangeTime(e) {
+				if (e[1].slice(-8) === "00:00:00") {
+					e[1] = e[1].slice(0, -8) + "23:59:59";
+					this.timeVal = e;
+				} else {
+					this.timeVal = e;
+				}
+				this.orderData.start_time = this.timeVal[0] || "";
+				this.orderData.end_time = this.timeVal[1] || "";
+				this.orderData.page = 1;
+				this.allReset();
+				this.getList();
+			},
+			pageChange(index) {
+				this.orderData.page = index;
+				this.getList();
+			},
+			userSearchs() {
+				this.allReset();
+				this.orderData.page = 1;
+				this.getList();
+			}
+		},
+	};
+</script>
+
+<style lang="stylus" scoped>
+	.tdinfo {
+		margin-left: 75px;
+		margin-top: 16px;
+	}
+
+	.expand-row {
+		margin-bottom: 16px;
+		font-size: 12px;
+	}
+
+	.tabBox {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+
+		.alert_img {
+			width: 300px;
+			height: 300px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tabBox_img {
+			width: 30px;
+			height: 30px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tabBox_tit {
+			width: 267px;
+			height: 30px;
+			line-height: 30px;
+			font-size: 12px !important;
+			margin: 0 2px 0 10px;
+			letter-spacing: 1px;
+			box-sizing: border-box;
+		}
+	}
+
+	.tabBox+.tabBox {
+		margin-top: 5px;
+	}
+</style>

+ 563 - 405
src/pages/order/orderList/components/orderDetails.vue

@@ -4,29 +4,34 @@
 			<div v-if="orderDatalist">
 				<div class="head">
 					<div class="full">
-						<Icon :class="{ 'sale-after': orderDatalist.orderInfo._status._type === -1 }" custom="iconfont icondingdan"
-							  size="60"/>
+						<Icon :class="{ 'sale-after': orderDatalist.orderInfo._status._type === -1 }"
+							custom="iconfont icondingdan" size="60" />
 						<div class="text">
 							<div class="title">{{ orderData.pink_name || '售后订单' }}</div>
 							<div>订单编号:{{ orderDatalist.orderInfo.order_id }}</div>
 						</div>
 						<div v-if="rowActive.delete_time == null">
-							<Button v-if="orderData._status_new === 1 && orderData.paid === 0 && orderData.pay_type === 'offline'"
-									@click="changeMenu('1')">立即支付
+							<Button
+								v-if="orderData._status_new === 1 && orderData.paid === 0 && orderData.pay_type === 'offline'"
+								@click="changeMenu('1')">立即支付
 							</Button>
 							<!--<Button v-if="orderData._status_new == 2 && !rowActive.split.length"-->
-									<!--@click="distribution">分配-->
+							<!--@click="distribution">分配-->
 							<!--</Button>-->
 							<Button v-if="orderData._status_new == 1" @click="edit">编辑</Button>
-							<Button v-if="(orderData._status_new === 2 || orderData._status_new === 8 || orderData.status === 4) && orderData.shipping_type === 1 && (orderData.pinkStatus === null || orderData.pinkStatus === 2)"
-									@click="sendOrder">发送货
+							<Button
+								v-if="(orderData._status_new === 2 || orderData._status_new === 8 || orderData.status === 4) && orderData.shipping_type === 1 && (orderData.pinkStatus === null || orderData.pinkStatus === 2)"
+								@click="sendOrder">发送货
 							</Button>
-							<Button v-if="orderData._status_new === 4&&!rowActive.split.length" @click="delivery">配送信息</Button>
-							<Button v-if="orderData.shipping_type == 2 && orderData.status == 0 && orderData.paid == 1 && orderData.refund_status === 0"
-									@click="bindWrite">立即核销
+							<Button v-if="orderData._status_new === 4&&!rowActive.split.length"
+								@click="delivery">配送信息</Button>
+							<Button
+								v-if="orderData.shipping_type == 2 && orderData.status == 0 && orderData.paid == 1 && orderData.refund_status === 0"
+								@click="bindWrite">立即核销
 							</Button>
 							<Button v-if="orderData._status_new >= 2" @click="changeMenu('10')">小票打印</Button>
-							<Button v-if="orderData._status_new >= 3 && orderData.express_dump" @click="changeMenu('11')">电子面单打印</Button>
+							<Button v-if="orderData._status_new >= 3 && orderData.express_dump"
+								@click="changeMenu('11')">电子面单打印</Button>
 							<Button v-if="
 		                ([1, 2, 5].includes(orderData.refund_type) &&
 		                (parseFloat(orderData.pay_price) >
@@ -34,22 +39,21 @@
 		                  orderData.pay_price == 0)) && !formType
 		              " @click="changeMenu('5')">{{ orderData.refund_type == 2 ? "同意退货" : "立即退款" }}
 							</Button>
-							<Button v-if="[1, 2].includes(orderData.refund_type)"
-									@click="changeMenu('7')">不退款
+							<Button v-if="[1, 2].includes(orderData.refund_type)" @click="changeMenu('7')">不退款
 							</Button>
 							<Button v-if="!formType" @click="changeMenu('4')">售后备注</Button>
-							<Button v-if="orderData.is_del == 1"
-									@click="changeMenu('9')">删除订单
+							<Button v-if="orderData.is_del == 1" @click="changeMenu('9')">删除订单
 							</Button>
 							<Dropdown @on-click="changeMenu" v-if="orderData._status_new !== 1 && formType">
 								<Button icon="ios-more"></Button>
 								<DropdownMenu slot="list">
 									<DropdownItem
-											v-if="orderData._status_new !== 1 || (orderData._status_new === 3 && orderData.use_integral > 0 && orderData.use_integral >= orderData.back_integral)"
-											name="4">订单备注
+										v-if="orderData._status_new !== 1 || (orderData._status_new === 3 && orderData.use_integral > 0 && orderData.use_integral >= orderData.back_integral)"
+										name="4">订单备注
 									</DropdownItem>
-									<DropdownItem v-if="(orderData.refund_type == 0 || orderData.refund_type == 1 || orderData.refund_type == 5) && orderData.paid == 1 && orderData.refund_status !== 2 && parseFloat(orderData.pay_price) > 0 && (!rowActive.split.length || (rowActive.split.length  &&orderData. _status._type == 1))"
-												  name="5">立即退款
+									<DropdownItem
+										v-if="(orderData.refund_type == 0 || orderData.refund_type == 1 || orderData.refund_type == 5) && orderData.paid == 1 && orderData.refund_status !== 2 && parseFloat(orderData.pay_price) > 0 && (!rowActive.split.length || (rowActive.split.length  &&orderData. _status._type == 1))&&orderData.status==0"
+										name="5">立即退款
 									</DropdownItem>
 									<DropdownItem v-if="orderData._status_new === 4" name="8">已收货</DropdownItem>
 									<DropdownItem v-if="orderData.paid" name="12">打印配货单</DropdownItem>
@@ -71,7 +75,8 @@
 							<div class="value1" v-else>
 								<span v-html="orderData.status_name.status_name"></span>
 								<span v-if="!orderData.is_all_refund && orderData.refund.length">,部分退款中</span>
-								<span v-if="orderData.is_all_refund && orderData.refund.length && orderData.refund_type != 6">,退款中</span>
+								<span
+									v-if="orderData.is_all_refund && orderData.refund.length && orderData.refund_type != 6">,退款中</span>
 							</div>
 						</li>
 						<li class="item">
@@ -108,12 +113,13 @@
 								<li class="item" v-if="parseFloat(orderDatalist.orderInfo.refund_price)">
 									<div>退款金额:</div>
 									<div class="value">
-									  ¥{{parseFloat(orderDatalist.orderInfo.refunded_price)?parseFloat(orderDatalist.orderInfo.refunded_price) : parseFloat(orderDatalist.orderInfo.refund_price) || 0 }}
+										¥{{parseFloat(orderDatalist.orderInfo.refunded_price)?parseFloat(orderDatalist.orderInfo.refunded_price) : parseFloat(orderDatalist.orderInfo.refund_price) || 0 }}
 									</div>
 								</li>
 								<li class="item" v-if="parseFloat(orderDatalist.orderInfo.back_integral)">
 									<div>退回积分:</div>
-									<div class="value">{{ parseFloat(orderDatalist.orderInfo.back_integral) || '-' }}</div>
+									<div class="value">{{ parseFloat(orderDatalist.orderInfo.back_integral) || '-' }}
+									</div>
 								</li>
 								<li class="item">
 									<div>退款说明:</div>
@@ -122,7 +128,8 @@
 								<li class="item">
 									<div>退款凭证:</div>
 									<div class="value">
-										<div class="image" v-for="(img, i) in orderDatalist.orderInfo.refund_img" :key="i" v-viewer>
+										<div class="image" v-for="(img, i) in orderDatalist.orderInfo.refund_img"
+											:key="i" v-viewer>
 											<img v-lazy="img">
 										</div>
 									</div>
@@ -151,7 +158,8 @@
 								<li class="item">
 									<div>退货凭证:</div>
 									<div class="value">
-										<div class="image" v-for="(img, i) in orderDatalist.orderInfo.refund_goods_img" :key="i" v-viewer>
+										<div class="image" v-for="(img, i) in orderDatalist.orderInfo.refund_goods_img"
+											:key="i" v-viewer>
 											<img v-lazy="img">
 										</div>
 									</div>
@@ -163,11 +171,15 @@
 							<ul class="list">
 								<li class="item">
 									<div>用户UID:</div>
-									<div class="value">{{ orderDatalist.userInfo.uid ? orderDatalist.userInfo.uid : '游客' }}</div>
+									<div class="value">
+										{{ orderDatalist.userInfo.uid ? orderDatalist.userInfo.uid : '游客' }}
+									</div>
 								</li>
 								<li class="item">
 									<div>用户昵称:</div>
-									<div class="value">{{ orderDatalist.userInfo.uid ? orderDatalist.userInfo.nickname : '游客' }}</div>
+									<div class="value">
+										{{ orderDatalist.userInfo.uid ? orderDatalist.userInfo.nickname : '游客' }}
+									</div>
 								</li>
 								<li class="item">
 									<div>绑定电话:</div>
@@ -194,7 +206,7 @@
 							</ul>
 						</div>
 						<div class="section"
-							 v-if="orderDatalist.orderInfo.fictitious_content && orderDatalist.orderInfo.cartInfo[0].product_type !=1">
+							v-if="orderDatalist.orderInfo.fictitious_content && orderDatalist.orderInfo.cartInfo[0].product_type !=1">
 							<div class="title">虚拟发货</div>
 							<ul class="list">
 								<li class="item">
@@ -257,7 +269,7 @@
 									<div>会员商品优惠:</div>
 									<div class="value">¥{{ orderDatalist.orderInfo.vip_true_price || 0.00 }}</div>
 								</li>
-                <li v-if="orderDatalist.orderInfo.first_order_price != 0" class="item">
+								<li v-if="orderDatalist.orderInfo.first_order_price != 0" class="item">
 									<div>新人首单优惠:</div>
 									<div class="value">¥{{ orderDatalist.orderInfo.first_order_price }}</div>
 								</li>
@@ -290,12 +302,27 @@
 									<div>原订单号:</div>
 									<div class="value">{{ orderDatalist.orderInfo.store_order_sn }}</div>
 								</li>
-								<li class="item" v-for="(item,index) in orderDatalist.orderInfo.promotions_detail" :key="index">
+								<li class="item" v-for="(item,index) in orderDatalist.orderInfo.promotions_detail"
+									:key="index">
 									<div>{{ item.title }}:</div>
 									<div class="value">¥{{ parseFloat(item.promotions_price).toFixed(2) }}</div>
 								</li>
 							</ul>
 						</div>
+						<div class="section" v-if="orderDatalist.orderInfo.pay_img.length>0">
+							<div class="title">支付凭证</div>
+							<ul class="list">
+								<li class="item">
+									<div>用户UID:</div>
+									<div class="value">
+										<div class="tabBox" v-for=" img in orderDatalist.orderInfo.pay_img">
+											<div class="tabBox_img" v-viewer><img v-lazy="img" /></div>
+
+										</div>
+									</div>
+								</li>
+							</ul>
+						</div>
 						<div class="section" v-if="orderDatalist.orderInfo.delivery_type==='express'">
 							<div class="title">物流信息</div>
 							<ul class="list">
@@ -305,7 +332,8 @@
 								</li>
 								<li class="item">
 									<div>快递单号:</div>
-									<div class="value">{{ orderDatalist.orderInfo.delivery_id }}<span class="logisticsLook"  @click="openLogistics">查询</span></div>
+									<div class="value">{{ orderDatalist.orderInfo.delivery_id }}<span
+											class="logisticsLook" @click="openLogistics">查询</span></div>
 								</li>
 							</ul>
 						</div>
@@ -325,10 +353,13 @@
 						<div v-if="orderDatalist.orderInfo.custom_form.length && isShow" class="section">
 							<div class="title">自定义留言</div>
 							<ul class="list">
-								<li v-for="(item, index) in orderDatalist.orderInfo.custom_form" :key="index" class="item"
-                    v-if="(item.value && ['uploadPicture','dateranges'].indexOf(item.name) == -1) || (item.value.length && ['uploadPicture','dateranges'].indexOf(item.name) != -1)">
+								<li v-for="(item, index) in orderDatalist.orderInfo.custom_form" :key="index"
+									class="item"
+									v-if="(item.value && ['uploadPicture','dateranges'].indexOf(item.name) == -1) || (item.value.length && ['uploadPicture','dateranges'].indexOf(item.name) != -1)">
 									<div class="txtVal">{{ item.titleConfig.value }}:</div>
-                  <div v-if="item.name === 'dateranges'" class="value">{{ item.value[0]+'/'+item.value[1] }}</div>
+									<div v-if="item.name === 'dateranges'" class="value">
+										{{ item.value[0]+'/'+item.value[1] }}
+									</div>
 									<div v-else-if="item.name === 'uploadPicture'" class="value">
 										<div v-for="(img, i) in item.value" :key="i" class="image" v-viewer>
 											<img v-lazy="img">
@@ -372,7 +403,9 @@
 								</li>
 								<li class="item">
 									<div>抬头类型:</div>
-									<div class="value">{{ orderDatalist.orderInfo.invoice.header_type | invoiceHeaderType }}</div>
+									<div class="value">
+										{{ orderDatalist.orderInfo.invoice.header_type | invoiceHeaderType }}
+									</div>
 								</li>
 								<li class="item">
 									<div>发票抬头:</div>
@@ -407,12 +440,13 @@
 								<Tooltip theme="dark" max-width="300" :delay="600">
 									<div class="product">
 										<div class="image" v-viewer>
-											<img v-lazy="row.productInfo.attrInfo ? row.productInfo.attrInfo.image : row.productInfo.image">
+											<img
+												v-lazy="row.productInfo.attrInfo ? row.productInfo.attrInfo.image : row.productInfo.image">
 										</div>
 										<div class="title">
 											<div class="line2">
 												<span class="font-color-red"
-													  v-if="row.is_gift">[赠品]</span>{{ row.productInfo.store_name }} |
+													v-if="row.is_gift">[赠品]</span>{{ row.productInfo.store_name }} |
 												{{ row.productInfo.attrInfo ? row.productInfo.attrInfo.suk : '' }}
 											</div>
 										</div>
@@ -429,22 +463,24 @@
 						</Table>
 					</TabPane>
 					<TabPane label="订单记录" name="record">
-						<Table :columns="columns2" :data="recordData" :loading="loading" no-data-text="暂无数据" highlight-row
-							   no-filtered-data-text="暂无筛选结果"></Table>
+						<Table :columns="columns2" :data="recordData" :loading="loading" no-data-text="暂无数据"
+							highlight-row no-filtered-data-text="暂无筛选结果"></Table>
 					</TabPane>
 					<TabPane label="发货记录" name="recordList" v-if="splitList.length">
-						<Table :columns="columnSplit" :data="splitList" :loading="loading" no-data-text="暂无数据" highlight-row
-							   no-filtered-data-text="暂无筛选结果">
+						<Table :columns="columnSplit" :data="splitList" :loading="loading" no-data-text="暂无数据"
+							highlight-row no-filtered-data-text="暂无筛选结果">
 							<template slot-scope="{ row }" slot="product">
 								<Tooltip theme="dark" max-width="300" :delay="600">
 									<div class="product productTime" v-for="(j,index) in row._info" :key="index">
 										<div class="image" v-viewer>
-											<img v-lazy="j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.image : j.cart_info.productInfo.image">
+											<img
+												v-lazy="j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.image : j.cart_info.productInfo.image">
 										</div>
 										<div class="title">
 											<div class="line2">
 												<span class="font-color-red" v-if="j.cart_info.is_gift">[赠品]</span>
-												{{ j.cart_info.productInfo.store_name }} | {{ j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.suk : '' }}
+												{{ j.cart_info.productInfo.store_name }} |
+												{{ j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.suk : '' }}
 											</div>
 										</div>
 									</div>
@@ -452,47 +488,46 @@
 										<div v-for="(j,index) in row._info" :key="index">
 											<p class="font-color-red" v-if="j.cart_info.is_gift">[赠品]</p>
 											<p>{{ j.cart_info.productInfo.store_name }}</p>
-											<p>{{ j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.suk : '' }}</p>
-											<p class="tabBox_pice">{{ "¥" + j.cart_info.sum_price + " x " + j.cart_info.cart_num }}</p>
+											<p>{{ j.cart_info.productInfo.attrInfo ? j.cart_info.productInfo.attrInfo.suk : '' }}
+											</p>
+											<p class="tabBox_pice">
+												{{ "¥" + j.cart_info.sum_price + " x " + j.cart_info.cart_num }}
+											</p>
 										</div>
 									</div>
 								</Tooltip>
 							</template>
 							<template slot-scope="{ row }" slot="deliveryInfo">
-								<div v-if="row.add_time"><span>{{row.status == 0?'创建时间':'发货时间'}}</span>:{{row.add_time}}</div>
-								<div v-if="row.delivery_type == 'express' || row.delivery_type == 'send' || row.delivery_type == 'fictitious'">
+								<div v-if="row.add_time"><span>{{row.status == 0?'创建时间':'发货时间'}}</span>:{{row.add_time}}
+								</div>
+								<div
+									v-if="row.delivery_type == 'express' || row.delivery_type == 'send' || row.delivery_type == 'fictitious'">
 									发货方式:
 									<span v-if="row.delivery_type == 'express'">物流发货</span>
 									<span v-if="row.delivery_type == 'send'">送货</span>
 									<span v-if="row.delivery_type == 'fictitious'">虚拟发货</span>
 								</div>
 								<div v-if="row.delivery_name">快递公司:{{row.delivery_name}}</div>
-								<div v-if="row.delivery_id" @click="openItemLogistics(row)">快递单号:<span style="color: #1890FF;cursor: pointer;">{{row.delivery_id}}</span></div>
+								<div v-if="row.delivery_id" @click="openItemLogistics(row)">快递单号:<span
+										style="color: #1890FF;cursor: pointer;">{{row.delivery_id}}</span></div>
 							</template>
 							<template slot-scope="{ row, index }" slot="action">
 								<!--<a @click="distribution(row,1)" v-if="row._status === 2">分配</a>-->
 								<!--<Divider type="vertical" v-if="row._status === 2" />-->
 								<a @click="edit(row,1)" v-if="row._status === 1">编辑</a>
-								<a @click="sendOrder(row,1)"
-									v-if="
+								<a @click="sendOrder(row,1)" v-if="
 									(row._status === 2 || row._status === 8 || row.status === 4) &&
 									row.shipping_type === 1 &&
 									(row.pinkStatus === null || row.pinkStatus === 2)
-								  "
-								>发送货</a>
+								  ">发送货</a>
 								<a @click="delivery(row,1)" v-if="row._status === 4 && !row.split.length">配送信息</a>
-								<a
-										@click="bindWrite(row,1)"
-										v-if="
+								<a @click="bindWrite(row,1)" v-if="
 										row.shipping_type == 2 &&
 										row.status == 0 &&
 										row.paid == 1 &&
 										row.refund_status === 0
-									  "
-								>立即核销</a>
-								<Divider
-										type="vertical"
-										v-if="
+									  ">立即核销</a>
+								<Divider type="vertical" v-if="
 										row._status === 1 ||
 										((row._status === 2 || row.split.length) && row.shipping_type === 1 &&
 										  (row.pinkStatus === null || row.pinkStatus === 2)) ||
@@ -501,8 +536,7 @@
 										  row.status == 0 &&
 										  row.paid == 1 &&
 										  row.refund_status === 0)
-									  "
-								/>
+									  " />
 								<template>
 									<Dropdown :transfer="true" @on-click="changeMenu('',row, $event, 1)">
 										<a href="javascript:void(0)">
@@ -510,33 +544,22 @@
 											<Icon type="ios-arrow-down"></Icon>
 										</a>
 										<DropdownMenu slot="list">
-											<DropdownItem
-													name="1"
-													ref="ones"
-													v-show="
+											<DropdownItem name="1" ref="ones" v-show="
 												  row._status === 1 &&
 												  row.paid === 0 &&
 												  row.pay_type === 'offline'
-												"
-											>立即支付</DropdownItem>
+												">立即支付</DropdownItem>
 											<DropdownItem name="3">订单记录</DropdownItem>
-											<DropdownItem
-													name="11"
-													v-show="row._status >= 3 && row.express_dump"
-											>电子面单打印</DropdownItem>
+											<DropdownItem name="11" v-show="row._status >= 3 && row.express_dump">电子面单打印
+											</DropdownItem>
 											<DropdownItem name="10" v-show="row._status >= 2">小票打印</DropdownItem>
-											<DropdownItem
-													name="4"
-													v-show="
+											<DropdownItem name="4" v-show="
 													  row._status !== 1 ||
 													  (row._status === 3 &&
 														row.use_integral > 0 &&
 														row.use_integral >= row.back_integral)
-													"
-											>订单备注</DropdownItem>
-											<DropdownItem
-													name="5"
-													v-show="
+													">订单备注</DropdownItem>
+											<DropdownItem name="5" v-show="
 												  row.refund_type != 2 &&
 												  row.refund_type != 4 &&
 												  row.refund_type != 6 &&
@@ -544,13 +567,10 @@
 												  row.refund_status !== 2 &&
 												  parseFloat(row.pay_price) > 0 &&
 												  (row.split == null || row.split.length == 0)
-												"
-											>立即退款</DropdownItem>
+												">立即退款</DropdownItem>
 											<DropdownItem name="55" v-show="row.refund_type == 2">同意退货</DropdownItem>
-											<DropdownItem
-													name="8"
-													v-show="row._status === 4 && !row.split.length"
-											>已收货</DropdownItem>
+											<DropdownItem name="8" v-show="row._status === 4 && !row.split.length">已收货
+											</DropdownItem>
 											<DropdownItem name="9" v-if="row.is_del == 1">删除订单</DropdownItem>
 										</DropdownMenu>
 									</Dropdown>
@@ -584,16 +604,20 @@
 </template>
 
 <script>
-	import { getExpress, getOrderRecord, splitOrder } from '@/api/order';
+	import {
+		getExpress,
+		getOrderRecord,
+		splitOrder
+	} from '@/api/order';
 	export default {
 		name: 'orderDetails',
 		filters: {
 			invoiceType: value => value == 1 ? '电子普通发票' : '纸质专用发票',
 			invoiceHeaderType: value => value == 1 ? '个人' : '企业'
 		},
-		data () {
+		data() {
 			return {
-				isShow:0,
+				isShow: 0,
 				modal2: false,
 				modals: false,
 				grid: {
@@ -604,8 +628,7 @@
 					xs: 24
 				},
 				result: [],
-				columns1: [
-					{
+				columns1: [{
 						title: '商品信息',
 						slot: 'product',
 						minWidth: 400
@@ -629,8 +652,7 @@
 						}
 					}
 				],
-				columns2: [
-					{
+				columns2: [{
 						title: '订单ID',
 						key: 'oid',
 						minWidth: 40
@@ -646,8 +668,7 @@
 						minWidth: 100
 					}
 				],
-				columnSplit: [
-					{
+				columnSplit: [{
 						title: '订单号',
 						key: 'order_id',
 						minWidth: 100
@@ -669,10 +690,10 @@
 					}
 				],
 				recordData: [],
-				activeName:'detail',
-				orderData:{},
-				splitList:[],
-				logisticsCon:{}
+				activeName: 'detail',
+				orderData: {},
+				splitList: [],
+				logisticsCon: {}
 			}
 		},
 		props: {
@@ -685,17 +706,17 @@
 			}
 		},
 		watch: {
-			orderDatalist (value) {
+			orderDatalist(value) {
 				this.orderData = value.orderInfo;
-				this.getList( !this.formType?value.orderInfo.store_order_id:value.orderInfo.id);
-				if(this.formType){
+				this.getList(!this.formType ? value.orderInfo.store_order_id : value.orderInfo.id);
+				if (this.formType) {
 					this.getSplitOrder(value.orderInfo.id)
 				}
 			},
-			orderData (value) {
-				if(value && value.custom_form && value.custom_form.length){
-					value.custom_form.forEach((item)=>{
-						if(item.value){
+			orderData(value) {
+				if (value && value.custom_form && value.custom_form.length) {
+					value.custom_form.forEach((item) => {
+						if (item.value) {
 							return this.isShow = 1
 						}
 					})
@@ -703,26 +724,26 @@
 			}
 		},
 		mounted() {
-			if(this.orderData && this.orderData.custom_form && this.orderData.custom_form.length){
-				this.orderData.custom_form.forEach((item)=>{
-					if(item.value){
+			if (this.orderData && this.orderData.custom_form && this.orderData.custom_form.length) {
+				this.orderData.custom_form.forEach((item) => {
+					if (item.value) {
 						return this.isShow = 1
 					}
 				})
 			}
 		},
 		methods: {
-			openItemLogistics(row){ 
+			openItemLogistics(row) {
 				this.modal2 = true;
 				this.getOrderData(row.id)
 			},
-			openLogistics () {
+			openLogistics() {
 				this.modal2 = true;
-				let data = !this.formType?this.orderDatalist.orderInfo.store_order_id:this.orderDatalist.orderInfo.id;
+				let data = !this.formType ? this.orderDatalist.orderInfo.store_order_id : this.orderDatalist.orderInfo.id;
 				this.getOrderData(data)
 			},
 			// 获取订单物流信息
-			getOrderData (data) {
+			getOrderData(data) {
 				getExpress(data).then(async res => {
 					this.result = res.data.result;
 					this.logisticsCon.delivery_id = res.data.delivery_id;
@@ -732,14 +753,16 @@
 				})
 			},
 			//发货记录
-			getSplitOrder(id){
-				splitOrder(id,{status:2}).then(res=>{
+			getSplitOrder(id) {
+				splitOrder(id, {
+					status: 2
+				}).then(res => {
 					this.splitList = res.data;
-				}).catch(err=>{
+				}).catch(err => {
 					this.$Message.error(err.msg);
 				})
 			},
-			getList (id) {
+			getList(id) {
 				let data = {
 					id: id,
 					datas: this.page
@@ -753,10 +776,10 @@
 					this.$Message.error(res.msg);
 				})
 			},
-			changeMenu (value,row,name,num) {
-				if(num){
+			changeMenu(value, row, name, num) {
+				if (num) {
 					this.$parent.changeMenu(row, name, num);
-				}else{
+				} else {
 					this.$parent.changeMenu(this.rowActive, value);
 				}
 			},
@@ -767,361 +790,496 @@
 			// 		this.$parent.distribution(this.rowActive);
 			// 	}
 			// },
-			edit(row,num){
-				if(num){
+			edit(row, num) {
+				if (num) {
 					this.$parent.edit(row);
-				}else{
+				} else {
 					this.$parent.edit(this.rowActive);
 				}
 			},
-			sendOrder (row,num) {
-				if(num){
-					this.$parent.sendOrder(row,num);
-				}else{
+			sendOrder(row, num) {
+				if (num) {
+					this.$parent.sendOrder(row, num);
+				} else {
 					this.$parent.sendOrder(this.rowActive);
 				}
 			},
-			delivery (row,num) {
-				if(num){
-					this.$parent.delivery(row,num);
-				}else{
+			delivery(row, num) {
+				if (num) {
+					this.$parent.delivery(row, num);
+				} else {
 					this.$parent.delivery(this.rowActive);
 				}
 			},
-			bindWrite (row,num) {
-				if(num){
+			bindWrite(row, num) {
+				if (num) {
 					this.$parent.bindWrite(row);
-				}else{
+				} else {
 					this.$parent.bindWrite(this.rowActive);
 				}
 			}
 		},
-		computed: {
-		}
+		computed: {}
 	}
 </script>
 <style scoped lang="stylus">
-.order_box .section .item .txtVal{
-  max-width 100px;
-}
-	.order_box .head .full .ivu-btn.on{
-		color: #c5c8ce!important;
-		background-color: #f7f7f7!important;
-		border-color: #dcdee2!important;
+	.order_box .section .item .txtVal {
+		max-width 100px;
 	}
-	.productTime~.productTime{
+
+	.order_box .head .full .ivu-btn.on {
+		color: #c5c8ce !important;
+		background-color: #f7f7f7 !important;
+		border-color: #dcdee2 !important;
+	}
+
+	.productTime~.productTime {
 		margin-top 10px;
 	}
-	.product .title .line2{
+
+	.product .title .line2 {
 		height: 36px;
 	}
 </style>
 <style scoped lang="stylus">
+	.tabBox {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+
+		.tabBox_img {
+			width: 30px;
+			height: 30px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tabBox_tit {
+			width: 267px;
+			height: 30px;
+			line-height: 30px;
+			font-size: 12px !important;
+			margin: 0 2px 0 10px;
+			letter-spacing: 1px;
+			box-sizing: border-box;
+		}
+	}
+
 	.ivu-description-list-title {
 		margin-bottom: 16px;
 		color: #17233d;
 		font-weight: 500;
 		font-size: 14px;
 	}
-	.logisticsLook{
+
+	.logisticsLook {
 		font-size 13px;
 		margin-left 10px;
 		color #1890FF;
 		cursor pointer;
 	}
-	.value{
-		word-break:break-all
+
+	.value {
+		word-break: break-all;
 	}
+
 	/deep/.ivu-icon-ios-more {
 		font-size 20px;
 	}
-	.logistics
-		align-items: cente
-		padding: 10px 0px
-		.logistics_img
-			width 45px
-			height 45px
-			margin-right: 12px
-			img
-				width 100%
-				height 100%
-		.logistics_cent
-			span
-				display block
-				font-size 12px
-	.trees-coadd
+
+	.logistics {
+		align-items: cente;
+		padding: 10px 0px;
+
+		.logistics_img {
+			width: 45px;
+			height: 45px;
+			margin-right: 12px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.logistics_cent {
+			span {
+				display: block;
+				font-size: 12px;
+			}
+		}
+	}
+
+	.trees-coadd {
+
 		width: 100%;
 		height: 400px;
 		border-radius: 4px;
 		overflow: hidden;
-		.scollhide
+
+		.scollhide {
 			width: 100%;
 			height: 100%;
 			overflow: auto;
 			margin-left: 18px;
 			padding: 10px 0 10px 0;
 			box-sizing: border-box;
-			.content
-				font-size 12px
-			.time
-				font-size 12px
-				color: #2d8cf0
-	.order_box2
-		position absolute
-		z-index 999999999
-	.order_box >>> .ivu-modal-header
-		padding 30x 16px !important
-	.order_box >>> .ivu-card
-		font-size 12px !important
-	.fontColor1 >>> .ivu-description-term
-		color red !important
-	.fontColor1 >>> .ivu-description-detail
-		color red !important
-		padding-bottom 14px !important
-	.fontColor2 >>> .ivu-description-detail
-		color #733AF9 !important
-	.order_box >>> .ivu-description-term
-		padding-bottom 10px !important
-	.order_box >>> .ivu-description-detail
-		padding-bottom 10px !important
-	.order_box >>> .ivu-modal-body
-		padding: 0 !important
-	.fontColor3 >>> .ivu-description-term
-		color #f1a417 !important
-	.fontColor3 >>> .ivu-description-detail
-		color #f1a417 !important
-
-	.tabBoxPic
-		width 50px
-		height 50px
-		display inline-block
-		vertical-align top
-		margin-right 6px
-	.tabBox_img
-		width 100%
-		height 100%
-		border-radius:4px
-		cursor pointer
-		img
-			width 100%
-			height 100%
-			padding 2px
-
-	>>> .order_box
-
-		.head
-			padding 30px 35px 25px
-
-			.full
-				display flex
-
-				.iconfont
-					color #1890FF
+
+			.content {
+				font-size: 12px;
+			}
+
+			.time {
+				font-size: 12px;
+				color: #2d8cf0;
+			}
+		}
+	}
+
+	.order_box2 {
+		position: absolute;
+		z-index: 999999999;
+	}
+
+	.order_box>>>.ivu-modal-header {
+		padding: 30x 16px !important;
+	}
+
+	.order_box>>>.ivu-card {
+		font-size: 12px !important;
+	}
+
+	.fontColor1>>>.ivu-description-term {
+		color: red !important;
+	}
+
+	.fontColor1>>>.ivu-description-detail {
+		color: red !important;
+		padding-bottom: 14px !important;
+	}
+
+	.fontColor2>>>.ivu-description-detail {
+		color: #733AF9 !important;
+	}
+
+	.order_box>>>.ivu-description-term {
+		padding-bottom: 10px !important;
+	}
+
+	.order_box>>>.ivu-description-detail {
+		padding-bottom: 10px !important;
+	}
+
+	.order_box>>>.ivu-modal-body {
+		padding: 0 !important;
+	}
+
+	.fontColor3>>>.ivu-description-term {
+		color: #f1a417 !important;
+	}
+
+	.fontColor3>>>.ivu-description-detail {
+		color: #f1a417 !important;
+	}
+
+	.tabBoxPic {
+		width: 50px;
+		height: 50px;
+		display: inline-block;
+		vertical-align: top;
+		margin-right: 6px;
+	}
+
+	.tabBox_img {
+		width: 100%;
+		height: 100%;
+		border-radius: 4px;
+		cursor: pointer;
+
+		img {
+			width: 100%;
+			height: 100%;
+			padding: 2px;
+		}
+	}
+
+	>>>.order_box {
+		color: #606266;
+
+		.head {
+			padding: 30px 35px 25px;
+
+			.full {
+				display: flex;
+
+				.iconfont {
+					color: #1890FF;
 
 					&.sale-after {
-						color #90ADD5
+						color: #90ADD5;
+					}
+				}
+
+				.text {
+					align-self: center;
+					flex: 1;
+					min-width: 0;
+					padding-left: 12px;
+					border: 0;
+					font-size: 13px;
+					line-height: 13px;
+					color: #606266;
+
+					.title {
+						margin-bottom: 10px;
+						font-weight: 500;
+						font-size: 16px;
+						line-height: 16px;
+						color: rgba(0, 0, 0, 0.85);
+					}
+				}
+
+				.ivu-btn {
+					margin-left: 12px;
+
+					&:first-child {
+
+						display: inline-block;
+						border-color: #1890FF;
+						margin-left: 0;
+						background-color: #1890FF;
+						color: #FFFFFF;
+					}
+
+					&:nth-child(2) {
+						display: inline-block;
+						border-color: #19BE6B;
+						background-color: #19BE6B;
+						color: #FFFFFF;
+					}
+
+					&:nth-child(3) {
+						display: inline-block;
+					}
+
+					&:focus {
+						box-shadow: none;
+					}
+
+				}
+
+				.ivu-dropdown {
+					margin-left: 12px;
+
+					&:nth-child(n+5) {
+						display: inline-block;
+					}
+
+					.ivu-btn {
+						border-color: #DCDEE2;
+						background-color: #FFFFFF;
+						color: #515A6E;
 					}
+				}
+			}
+
+			.list {
+				display: flex;
+				margin-top: 20px;
+				overflow: hidden;
+				list-style: none;
+
+				.item {
+					flex: none;
+					width 200px;
+					font-size 14px;
+					line-height 14px;
+					color rgba(0, 0, 0, 0.85);
+
+					.title {
+						margin-bottom 12px;
+						font-size 13px;
+						line-height 13px;
+						color #666666;
+					}
+
+					.value1 {
+						color: #F56022;
+					}
+
+					.value2 {
+						color: #1BBE6B;
+					}
+
+					.value3 {
+						color: #1890FF;
+					}
+
+					.value4 {
+						color: #6A7B9D;
+					}
+
+					.value5 {
+						color: #F5222D;
+					}
+				}
+			}
+		}
+
+		.section {
+			padding: 25px 0;
+			border-bottom: 1px dashed #EEEEEE;
+
+			.title {
+
+				padding-left: 10px;
+				border-left: 3px solid #1890FF;
+				font-size: 15px;
+				line-height: 15px;
+				color: #303133;
+			}
+
+			.list {
+				display: flex;
+				flex-wrap: wrap;
+				list-style: none;
+			}
+
+			.item {
+				flex: 0 0 calc(100% / 3);
+				display: flex;
+				margin-top: 16px;
+				font-size: 13px;
+			}
+		}
+
+		&:nth-child(3n+1) {
+			padding-right: 20px;
+		}
+
+		&:nth-child(3n+2) {
+			padding-right: 10px;
+			padding-left: 10px;
+		}
+
+		&:nth-child(3n+3) {
+			padding-left: 20px;
+		}
+	}
+
+	.value {
+		flex: 1;
+
+		.image {
+
+			display: inline-block;
+			width: 40px;
+			height: 40px;
+			margin: 0 12px 12px 0;
+			vertical-align: middle;
+		}
+
+		img {
+			width: 100%;
+			height: 100%;
+		}
+
+	}
+
+	.product {
 
-				.text
-					align-self center
-					flex 1
-					min-width 0
-					padding-left 12px
-					border 0
-					font-size 13px
-					line-height 13px
-					color #606266
-
-					.title
-						margin-bottom 10px
-						font-weight 500
-						font-size 16px
-						line-height 16px
-						color rgba(0, 0, 0, 0.85)
-
-				.ivu-btn
-					margin-left 12px
-
-					&:first-child
-						display inline-block
-						border-color #1890FF
-						margin-left 0
-						background-color #1890FF
-						color #FFFFFF
-
-					&:nth-child(2)
-						display inline-block
-						border-color #19BE6B
-						background-color #19BE6B
-						color #FFFFFF
-
-					&:nth-child(3)
-						display inline-block
-
-					&:focus
-						box-shadow none
-
-				.ivu-dropdown
-					margin-left 12px
-
-					&:nth-child(n+5)
-						display inline-block
-
-					.ivu-btn
-						border-color #DCDEE2
-						background-color #FFFFFF
-						color #515A6E
-
-			.list
-				display flex
-				margin-top 20px
-				overflow hidden
-				list-style none
-
-				.item
-					flex none
-					width 200px
-					font-size 14px
-					line-height 14px
-					color rgba(0, 0, 0, 0.85)
-
-					.title
-						margin-bottom 12px
-						font-size 13px
-						line-height 13px
-						color #666666
-
-					.value1
-						color #F56022
-
-					.value2
-						color #1BBE6B
-
-					.value3
-						color #1890FF
-
-					.value4
-						color #6A7B9D
-
-					.value5
-						color #F5222D
-
-		.section
-			padding 25px 0
-			border-bottom 1px dashed #EEEEEE
-
-			.title
-				padding-left 10px
-				border-left 3px solid #1890FF
-				font-size 15px
-				line-height 15px
-				color #303133
-
-			.list
-				display flex
-				flex-wrap wrap
-				list-style none
-
-			.item
-				flex 0 0 calc(100% / 3)
-				display flex
-				margin-top 16px
-				font-size 13px
-	color #606266
-
-		&:nth-child(3n+1)
-			padding-right 20px
-
-		&:nth-child(3n+2)
-			padding-right 10px
-			padding-left 10px
-
-		&:nth-child(3n+3)
-			padding-left 20px
-
-	.value
-		flex 1
-
-		.image
-			display inline-block
-			width 40px
-			height 40px
-			margin 0 12px 12px 0
-			vertical-align middle
-
-		img
-			width 100%
-			height 100%
-
-	.product
 		//display flex
 
-		.image
-			width 50px
-			height 50px
-			display inline-block
-			vertical-align middle
+		.image {
 
-		img
-			width 100%
-			height 100%
-			border-radius 4px
+			width: 50px;
+			height: 50px;
+			display: inline-block;
+			vertical-align: middle;
+		}
 
-		.title
-			width calc(100% - 63px)
-			padding-left 13px
-			text-align left
-			display inline-block
-			vertical-align middle
+		img {
 
-	>>> .ivu-tabs
-		color rgba(0, 0, 0, 0.85)
+			width: 100%;
+			height: 100%;
+			border-radius: 4px;
+		}
 
-		.ivu-tabs-bar
-			border-bottom 0
-			margin-bottom 0
-			background-color #F5F7FA
+		.title {
 
-		.ivu-tabs-nav-container
-			font-size 13px
+			width: calc(100% - 63px);
+			padding-left: 13px;
+			text-align: left;
+			display: inline-block;
+			vertical-align: middle;
+		}
+	}
 
-		.ivu-tabs-nav-wrap
-			margin-bottom 0
+	>>>.ivu-tabs {
+		color: rgba(0, 0, 0, 0.85);
 
-		.ivu-tabs-ink-bar
-			display none
+		.ivu-tabs-bar {
 
-		.ivu-tabs-tab
-			padding 7px 19px !important
-			margin-right 0
-			line-height 26px
+			border-bottom: 0;
+			margin-bottom: 0;
+			background-color: #F5F7FA;
+		}
 
-		.ivu-tabs-tab-active
-			background-color #FFFFFF
-			color rgba(0, 0, 0, 0.85)
+		.ivu-tabs-nav-container {
+			font-size: 13px;
+		}
 
-			&::before
-				content ""
-				position absolute
-				top 0
-				left 0
-				width 100%
-				height 2px
-				background-color #1890FF
+		.ivu-tabs-nav-wrap {
+			margin-bottom: 0;
+		}
 
-		.ivu-tabs-tabpane
-			padding 15px
+		.ivu-tabs-ink-bar {
+			display: none;
+		}
 
-			&:first-child
-				padding 0 25px
+		.ivu-tabs-tab {
+			padding: 7px 19px !important;
+			margin-right: 0;
+			line-height: 26px;
+		}
 
-	>>> .ivu-table
+		.ivu-tabs-tab-active {
+			background-color: #FFFFFF;
+			color: rgba(0, 0, 0, 0.85);
 
-		.ivu-table-header
+			&::before {
+				content: "";
+				position: absolute;
+				top: 0;
+				left: 0;
+				width: 100%;
+				height: 2px;
+				background-color: #1890FF;
+			}
+		}
 
-			table
-				border-top 0 !important
+		.ivu-tabs-tabpane {
+			padding: 15px;
 
-			th
-				background-color #F7F7F7 !important
-</style>
+			&:first-child {
+				padding: 0 25px;
+			}
+		}
+	}
+
+	>>>.ivu-table {
+		.ivu-table-header {
+			table {
+				border-top: 0 !important;
+			}
+
+			th {
+				background-color: #F7F7F7 !important;
+			}
+		}
+	}
+</style>

+ 1 - 1
src/pages/order/orderList/components/orderSend.vue

@@ -223,7 +223,7 @@
 				orderStatus: 0,
 				splitSwitch: false,
 				formItem: {
-					type: "1",
+					type: "3",
 					express_record_type: "1",
 					delivery_name: "",
 					delivery_id: "",

+ 1229 - 1156
src/pages/order/orderList/index.vue

@@ -1,1179 +1,1252 @@
 <template>
-  <div>
-    <Card :bordered="false" dis-hover class="mt15">
-      <Form
-        ref="orderData"
-        :model="orderData"
-        :label-width="labelWidth"
-        :label-position="labelPosition"
-        class="tabform"
-        @submit.native.prevent
-      >
-        <div class="acea-row">
-          <FormItem label="时间选择:">
-            <DatePicker
-                    :editable="false"
-                    :clearable="true"
-                    @on-change="onchangeTime"
-                    :value="timeVal"
-                    format="yyyy/MM/dd HH:mm:ss"
-                    type="datetimerange"
-                    placement="bottom-start"
-                    placeholder="自定义时间"
-                    style="width: 250px"
-                    class="mr30"
-                    :options="options"
-            ></DatePicker>
-          </FormItem>
-          <FormItem label="订单类型:">
-            <Select
-                    v-model="orderData.type"
-                    style="width: 250px"
-                    class="mr30"
-                    clearable
-                    @on-change="userSearchs"
-                    placeholder="全部订单"
-            >
-              <Option value="" >全部订单</Option>
-              <Option value="0">普通订单</Option>
-              <Option value="1">秒杀订单</Option>
-              <Option value="2">砍价订单</Option>
-              <Option value="3">拼团订单</Option>
-              <Option value="4">套餐订单</Option>
-<!--              <Option value="8">预售商品</Option>-->
-              <Option value="9">新人订单</Option>
-            </Select>
-          </FormItem>
-          <FormItem label="订单状态:">
-            <Select
-                    v-model="orderData.status"
-                    style="width: 250px"
-                    class="mr30"
-                    clearable
-                    @on-change="userSearchs"
-                    placeholder="全部"
-            >
-              <Option value="" >全部</Option>
-              <Option value="0">未支付</Option>
-              <Option value="1">未发货</Option>
-              <Option value="2">待收货</Option>
-              <Option value="3">待评价</Option>
-              <Option value="4">交易完成</Option>
-              <Option value="-4">已删除</Option>
-            </Select>
-          </FormItem>
-		  <FormItem label="支付方式:">
-		    <Select v-model="orderData.pay_type" clearable class="mr30" style="width: 250px" @on-change="userSearchs" placeholder="全部" >
-		      <Option v-for="item in payList" :value="item.val" :key="item.id">{{
+	<div>
+		<Card :bordered="false" dis-hover class="mt15">
+			<Form ref="orderData" :model="orderData" :label-width="labelWidth" :label-position="labelPosition"
+				class="tabform" @submit.native.prevent>
+				<div class="acea-row">
+					<FormItem label="时间选择:">
+						<DatePicker :editable="false" :clearable="true" @on-change="onchangeTime" :value="timeVal"
+							format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start"
+							placeholder="自定义时间" style="width: 250px" class="mr30" :options="options"></DatePicker>
+					</FormItem>
+					<!-- <FormItem label="订单类型:">
+						<Select v-model="orderData.type" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部订单">
+							<Option value="">全部订单</Option>
+							<Option value="0">普通订单</Option>
+							<Option value="1">秒杀订单</Option>
+							<Option value="2">砍价订单</Option>
+							<Option value="3">拼团订单</Option>
+							<Option value="4">套餐订单</Option>
+							<Option value="9">新人订单</Option>
+						</Select>
+					</FormItem> -->
+					<FormItem label="订单审核:">
+						<Select v-model="orderData.pay_status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部订单">
+							<Option value="-1">全部订单</Option>
+							<Option value="0">待审核</Option>
+							<Option value="1">已通过</Option>
+							<Option value="2">已拒绝</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="凭证:">
+						<Select v-model="orderData.pay_img_status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部订单">
+							<Option :value="0">没有凭证</Option>
+							<Option :value="1">有凭证</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="订单类型:">
+						<Select v-model="orderData.is_level_order" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部订单">
+							<Option :value="-1">全部</Option>
+							<Option :value="1">升级订单</Option>
+							<Option :value="2">普通订单</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="订单状态:">
+						<Select v-model="orderData.status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部">
+							<Option value="">全部</Option>
+							<Option value="0">待确认</Option>
+							<Option value="1">未发货</Option>
+							<Option value="2">待收货</Option>
+							<Option value="3">待评价</Option>
+							<Option value="4">交易完成</Option>
+							<Option value="-4">已删除</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="支付方式:">
+						<Select v-model="orderData.pay_type" clearable class="mr30" style="width: 250px"
+							@on-change="userSearchs" placeholder="全部">
+							<Option v-for="item in payList" :value="item.val" :key="item.id">{{
 		        item.label
 		        }}</Option>
-		    </Select>
-		  </FormItem>
-		  <FormItem label="订单搜索:">
-		    <Input
-		            v-model="orderData.real_name"
-		            placeholder="请输入"
-		            element-id="name"
-		            clearable
-		            style="width:250px;"
-		            maxlength="20"
-		    >
-		      <Select
-		              v-model="orderData.field_key"
-		              slot="prepend"
-		              style="width:80px;"
-		              default-label="全部"
-		      >
-		        <Option value="all">全部</Option>
-		        <Option value="order_id">订单号</Option>
-		        <Option value="uid">用户UID</Option>
-		        <Option value="real_name">用户姓名</Option>
-		        <Option value="user_phone">用户电话</Option>
-		        <Option value="title">商品名称</Option>
-		        <Option value="total_num">商品件数</Option>
-		      </Select>
-		    </Input>
-		  </FormItem>
-		  <Button type="primary" @click="userSearchs" class="ml20">查询</Button>
-		  <Button @click="reset" class="ml20">重置</Button>
-        </div>
-      </Form>
-    </Card>
-    <Card :bordered="false" dis-hover class="mt15">
-      <div class="acea-row row-between">
-        <div>
-          <Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
-            <Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0" @click="delAll">批量删除订单</Button>
-          </Tooltip>
-          <Button class="mr10" type="primary" @click="manualModal = true">手动批量发货</Button>
-          <Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
-            <Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0" @click="printOreder">打印配货单</Button>
-          </Tooltip>
-          <Dropdown
-                  class="mr10"
-                  @on-click="exports"
-          >
-            <Button style="width: 110px">
-              {{ exportList[exportListOn].label }}
-              <Icon type="ios-arrow-down"></Icon>
-            </Button>
-            <DropdownMenu slot="list">
-              <DropdownItem
-                      v-for="(item, index) in exportList"
-                      :key="index"
-                      :name="item.name"
-                      style="font-size: 12px !important"
-              >{{ item.label }}</DropdownItem
-              >
-            </DropdownMenu>
-          </Dropdown>
-          <!--<Button class="mr10 greens" size="default" @click="writeOff">订单核销</Button>-->
-        </div>
-        <div>
-          <Button class="mr10" @click="queuemModal">批量发货记录</Button>
-          <Button class="mr10" @click="getExpressList">下载物流公司对照表</Button>
-        </div>
-      </div>
-	  <vxe-table
-	          border="inner"
-	  	      ref="xTable"
-	  	      class="mt25"
-	  	      :loading="loading"
-	  	      row-id="id"
-	  	      :expand-config="{accordion: true}"
-	  	      :checkbox-config="{reserve: true}"
-	  	      @checkbox-all="checkboxAll"
-	  	      @checkbox-change="checkboxItem"
-	  	      :data="orderList">
-			<vxe-column type="" width="0"></vxe-column>
-			<vxe-column type="expand" width="35">
-			  <template #content="{ row }">
-			    <div class="tdinfo">
-			      <Row class="expand-row">
-			        <Col span="8">
-			          <span class="expand-key">商品总价:</span>
-			          <span class="expand-value" v-text="row.total_price"></span>
-			        </Col>
-			        <Col span="8">
-			          <span class="expand-key">下单时间:</span>
-			          <span class="expand-value" v-text="row.add_time"></span>
-			        </Col>
-			        <Col span="8">
-			          <span class="expand-key">推广人:</span>
-			          <span class="expand-value" v-text="row.spread_nickname?row.spread_nickname:'无'"></span>
-			        </Col>
-			      </Row>
-			      <Row class="expand-row">
-			        <Col span="8">
-			          <span class="expand-key">用户备注:</span>
-			          <span class="expand-value" v-text="row.mark?row.mark:'无'"></span>
-			        </Col>
-			        <Col span="8">
-			          <span class="expand-key">商家备注:</span>
-			          <span class="expand-value" v-text="row.remark?row.remark:'无'"></span>
-			        </Col>
-			      </Row>
-			    </div>
-			  </template>
-			</vxe-column>
-			<vxe-column type="checkbox" width="100">
-				<template #header>
-				  <div>
-				    <Dropdown transfer @on-click="allPages">
-				      <a href="javascript:void(0)" class="acea-row row-middle">
-				        <span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
-				        <Icon type="ios-arrow-down"></Icon>
-				      </a>
-				      <template #list>
-				        <DropdownMenu>
-				          <DropdownItem name="0">当前页</DropdownItem>
-				          <DropdownItem name="1">所有页</DropdownItem>
-				        </DropdownMenu>
-				      </template>
-				    </Dropdown>
-				  </div>
-				</template>
-			</vxe-column>
-			<vxe-column field="order_id" title="订单号" min-width="190">
-				<template v-slot="{ row }">
-					<Tooltip theme="dark" max-width="300" :delay="600" content="用户已删除" v-if="row.is_del === 1 && row.delete_time == null">
-					  <span style="color: #ed4014; display: block">{{row.order_id}}</span>
+						</Select>
+					</FormItem>
+					<FormItem label="订单搜索:">
+						<Input v-model="orderData.real_name" placeholder="请输入" element-id="name" clearable
+							style="width:250px;" maxlength="20">
+						<Select v-model="orderData.field_key" slot="prepend" style="width:80px;" default-label="全部">
+							<Option value="all">全部</Option>
+							<Option value="order_id">订单号</Option>
+							<Option value="uid">用户UID</Option>
+							<Option value="real_name">用户姓名</Option>
+							<Option value="user_phone">用户电话</Option>
+							<Option value="title">商品名称</Option>
+							<Option value="total_num">商品件数</Option>
+						</Select>
+						</Input>
+					</FormItem>
+					<Button type="primary" @click="userSearchs" class="ml20">查询</Button>
+					<Button @click="reset" class="ml20">重置</Button>
+				</div>
+			</Form>
+		</Card>
+		<Card :bordered="false" dis-hover class="mt15">
+			<div class="acea-row row-between">
+				<div>
+					<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
+						<Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0"
+							@click="delAll">批量删除订单</Button>
 					</Tooltip>
-					<span @click="changeMenu(row,'2')" v-else style="color: #2D8cF0; display: block;cursor: pointer;">{{row.order_id}}</span>
-				</template>
-			</vxe-column>
-			<vxe-column field="info" title="商品信息" min-width="330">
-				<template v-slot="{ row }">
-					<Tooltip :transfer="true" theme="dark" max-width="300" :delay="600">
-					  <div class="tabBox" v-for="(val, i) in row._info" :key="i">
-					    <div class="tabBox_img" v-viewer>
-					      <img
-					              v-lazy="
+					<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
+						<Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0"
+							@click="allOrderChecked">批量审核</Button>
+					</Tooltip>
+					<Button class="mr10" type="primary" @click="manualModal = true">手动批量发货</Button>
+					<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
+						<Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0"
+							@click="printOreder">打印配货单</Button>
+					</Tooltip>
+					
+					<Dropdown class="mr10" @on-click="exports">
+						<Button style="width: 110px">
+							{{ exportList[exportListOn].label }}
+							<Icon type="ios-arrow-down"></Icon>
+						</Button>
+						<DropdownMenu slot="list">
+							<DropdownItem v-for="(item, index) in exportList" :key="index" :name="item.name"
+								style="font-size: 12px !important">{{ item.label }}</DropdownItem>
+						</DropdownMenu>
+					</Dropdown>
+					<!--<Button class="mr10 greens" size="default" @click="writeOff">订单核销</Button>-->
+				</div>
+				<div>
+					<Button class="mr10" @click="queuemModal">批量发货记录</Button>
+					<Button class="mr10" @click="getExpressList">下载物流公司对照表</Button>
+				</div>
+			</div>
+			<vxe-table border="inner" ref="xTable" class="mt25" :loading="loading" row-id="id"
+				:expand-config="{accordion: true}" :checkbox-config="{reserve: true}" @checkbox-all="checkboxAll"
+				@checkbox-change="checkboxItem" :data="orderList">
+				<vxe-column type="" width="0"></vxe-column>
+				<vxe-column type="expand" width="35">
+					<template #content="{ row }">
+						<div class="tdinfo">
+							<Row class="expand-row">
+								<Col span="8">
+								<span class="expand-key">商品总价:</span>
+								<span class="expand-value" v-text="row.total_price"></span>
+								</Col>
+								<Col span="8">
+								<span class="expand-key">下单时间:</span>
+								<span class="expand-value" v-text="row.add_time"></span>
+								</Col>
+								<Col span="8">
+								<span class="expand-key">推广人:</span>
+								<span class="expand-value" v-text="row.spread_nickname?row.spread_nickname:'无'"></span>
+								</Col>
+							</Row>
+							<Row class="expand-row">
+								<Col span="8">
+								<span class="expand-key">用户备注:</span>
+								<span class="expand-value" v-text="row.mark?row.mark:'无'"></span>
+								</Col>
+								<Col span="8">
+								<span class="expand-key">商家备注:</span>
+								<span class="expand-value" v-text="row.remark?row.remark:'无'"></span>
+								</Col>
+							</Row>
+						</div>
+					</template>
+				</vxe-column>
+				<vxe-column type="checkbox" width="100">
+					<template #header>
+						<div>
+							<Dropdown transfer @on-click="allPages">
+								<a href="javascript:void(0)" class="acea-row row-middle">
+									<span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
+									<Icon type="ios-arrow-down"></Icon>
+								</a>
+								<template #list>
+									<DropdownMenu>
+										<DropdownItem name="0">当前页</DropdownItem>
+										<DropdownItem name="1">所有页</DropdownItem>
+									</DropdownMenu>
+								</template>
+							</Dropdown>
+						</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="order_id" title="订单号" min-width="190">
+					<template v-slot="{ row }">
+						<Tooltip theme="dark" max-width="300" :delay="600" content="用户已删除"
+							v-if="row.is_del === 1 && row.delete_time == null">
+							<span style="color: #ed4014; display: block">{{row.order_id}}</span>
+						</Tooltip>
+						<span @click="changeMenu(row,'2')" v-else
+							style="color: #2D8cF0; display: block;cursor: pointer;">{{row.order_id}}</span>
+					</template>
+				</vxe-column>
+				<vxe-column field="info" title="商品信息" min-width="330">
+					<template v-slot="{ row }">
+						<Tooltip :transfer="true" theme="dark" max-width="300" :delay="600">
+							<div class="tabBox" v-for="(val, i) in row._info" :key="i">
+								<div class="tabBox_img" v-viewer>
+									<img v-lazy="
 					        val.cart_info.productInfo.attrInfo
 					          ? val.cart_info.productInfo.attrInfo.image
 					          : val.cart_info.productInfo.image
-					      "
-					      />
-					    </div>
-					    <span class="tabBox_tit line1">
-					    <span class="font-color-red" v-if="val.cart_info.is_gift">赠品</span>
-					    {{ val.cart_info.productInfo.store_name + " | "}}
-					    {{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}
-					  </span>
-					  </div>
-					  <div slot="content">
-					    <div v-for="(val, i) in row._info" :key="i">
-					      <p class="font-color-red" v-if="val.cart_info.is_gift">赠品</p>
-					      <p>{{ val.cart_info.productInfo.store_name }}</p>
-					      <p> {{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}</p>
-					      <p class="tabBox_pice">{{ "¥" + val.cart_info.sum_price + " x " + val.cart_info.cart_num }}</p>
-					    </div>
-					  </div>
-					</Tooltip>
-				</template>
-			</vxe-column>
-			<vxe-column field="nickname" title="用户信息" min-width="130">
-				<template v-slot="{ row }">
-					<a @click="showUserInfo(row)">{{ row.nickname }}</a>
-					<span style="color: #ed4014;" v-if="row.delete_time != null"> (已注销)</span>
-				</template>
-			</vxe-column>
-			<vxe-column field="pink_name" title="订单类型" min-width="110"></vxe-column>
-			<vxe-column field="pay_price" title="实际支付" min-width="90">
-				<template v-slot="{ row }">
-					<div>{{row.paid>0?row.pay_price:0}}</div>
-				</template>
-			</vxe-column>
-			<vxe-column field="pay_type_name" title="支付方式" min-width="110"></vxe-column>
-			<vxe-column field="_pay_time" title="支付时间" min-width="130"></vxe-column>
-			<vxe-column field="statusName" title="订单状态" min-width="100">
-				<template v-slot="{ row }">
-					<Tag color="default" size="medium" v-show="row.status == 3">{{row.status_name.status_name}}</Tag>
-					<Tag color="orange" size="medium" v-show="row.status == 1 || row.status == 2" v-html="row.status_name.status_name"></Tag>
-					<Tag color="red" size="medium" v-show="row.status == 0" v-html="row.status_name.status_name"></Tag>
-					<Tag color="red" size="medium" v-show="row.status == 4">{{row.status_name.status_name}}</Tag>
-					<Tag color="red" size="medium" v-show="row.status == 5">{{row.status_name.status_name}}</Tag>
-					<Tag color="orange" size="medium" v-if="!row.is_all_refund && row.refund.length">部分退款中</Tag>
-					<Tag color="orange" size="medium" v-if="row.is_all_refund && row.refund.length && row.refund_type != 6">退款中</Tag>
-					<div class="pictrue-box" size="medium"  v-if="row.status_name.pics">
-					  <div
-					          v-viewer
-					          v-for="(item, index) in row.status_name.pics || []"
-					          :key="index"
-					  >
-					    <img class="pictrue mr10" v-lazy="item" :src="item" />
-					  </div>
-					</div>
-				</template>
-			</vxe-column>
-			<vxe-column field="pay_type" title="支付状态" min-width="90">
-				<template v-slot="{ row }">
-					<div>{{row.paid==1?'已支付':'未支付'}}</div>
-				</template>
-			</vxe-column>
-			<vxe-column field="action" title="操作" align="center" width="130" fixed="right">
-				<template v-slot="{ row }">
-					<a
-					  @click="sendOrder(row)"
-					  v-if="
+					      " />
+								</div>
+								<span class="tabBox_tit line1">
+									<span class="font-color-red" v-if="val.cart_info.is_gift">赠品</span>
+									{{ val.cart_info.productInfo.store_name + " | "}}
+									{{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}
+								</span>
+							</div>
+							<div slot="content">
+								<div v-for="(val, i) in row._info" :key="i">
+									<p class="font-color-red" v-if="val.cart_info.is_gift">赠品</p>
+									<p>{{ val.cart_info.productInfo.store_name }}</p>
+									<p> {{val.cart_info.productInfo.attrInfo ? val.cart_info.productInfo.attrInfo.suk: ""}}
+									</p>
+									<p class="tabBox_pice">
+										{{ "¥" + val.cart_info.sum_price + " x " + val.cart_info.cart_num }}</p>
+								</div>
+							</div>
+						</Tooltip>
+					</template>
+				</vxe-column>
+				<vxe-column field="info" title="支付凭证" min-width="100">
+					<template v-slot="{ row }">
+						<div class="tabBox"  v-if="row.pay_img.length>0">
+							<div class="tabBox_img"  v-for="it in row.pay_img" v-viewer><img v-lazy="it" /></div>
+						</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="nickname" title="用户信息" min-width="130">
+					<template v-slot="{ row }">
+						<a @click="showUserInfo(row)">{{ row.nickname }}</a>
+						<span style="color: #ed4014;" v-if="row.delete_time != null"> (已注销)</span>
+					</template>
+				</vxe-column>
+				<!-- <vxe-column field="pink_name" title="订单类型" min-width="110"></vxe-column> -->
+				<vxe-column field="is_level_order" title="订单类型" min-width="100">
+					<template v-slot="{ row }">
+						<Tag color="default" size="medium" v-show="row.is_level_order == 2">普通订单</Tag>
+						<Tag color="green" size="medium" v-show="row.is_level_order == 1">升级订单</Tag>
+						<Tag color="default" size="medium" v-show="row.is_level_order == 0">普通订单</Tag>
+					</template>
+				</vxe-column>
+				<vxe-column field="pay_price" title="实际支付" min-width="90">
+					<template v-slot="{ row }">
+						<div>{{row.paid>0?row.pay_price:0}}</div>
+					</template>
+				</vxe-column>
+				
+				<vxe-column field="statusName" title="订单状态" min-width="100">
+					<template v-slot="{ row }">
+						<Tag color="default" size="medium" v-show="row.status == 3">{{row.status_name.status_name}}
+						</Tag>
+						<Tag color="orange" size="medium" v-show="row.status == 1 || row.status == 2"
+							v-html="row.status_name.status_name"></Tag>
+						<Tag color="red" size="medium" v-show="row.status == 0" v-html="row.status_name.status_name">
+						</Tag>
+						<Tag color="red" size="medium" v-show="row.status == 4">{{row.status_name.status_name}}</Tag>
+						<Tag color="red" size="medium" v-show="row.status == 5">{{row.status_name.status_name}}</Tag>
+						<Tag color="orange" size="medium" v-if="!row.is_all_refund && row.refund.length">部分退款中</Tag>
+						<Tag color="orange" size="medium"
+							v-if="row.is_all_refund && row.refund.length && row.refund_type != 6">退款中</Tag>
+					</template>
+				</vxe-column>
+				<vxe-column field="pay_type" title="支付状态" min-width="90">
+					<template v-slot="{ row }">
+						<div>{{row.paid==1?'已支付':'未支付'}}</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="pay_status" title="审核状态" min-width="90">
+					<template v-slot="{ row }">
+						<Tag color="orange" size="medium" v-show="row.pay_status==0" v-html="'待审核'"></Tag>
+						<Tag color="green" size="medium" v-show="row.pay_status==1" v-html="'已通过'"></Tag>
+						<Tag color="red" size="medium" v-show="row.pay_status==2" v-html="'未通过'"></Tag>
+					</template>
+				</vxe-column>
+				<vxe-column field="pay_type_name" title="支付方式" min-width="110"></vxe-column>
+				<vxe-column field="_pay_time" title="支付时间" min-width="130"></vxe-column>
+				<vxe-column field="action" title="操作" align="center" width="130" fixed="right">
+					<template v-slot="{ row }">
+						<a @click="sendOrder(row)" v-if="
 					  (row._status === 2 || row._status === 8 || row.status === 4) &&
 					  row.shipping_type === 1 &&
 					  (row.pinkStatus === null || row.pinkStatus === 2) && row.delete_time == null
-					"
-					>发送货</a
-					>
-					<Divider type="vertical" v-if="(row._status === 2 || row._status === 8 || row.status === 4) &&
+					">发送货</a>
+						<Divider type="vertical" v-if="(row._status === 2 || row._status === 8 || row.status === 4) &&
 					  row.shipping_type === 1 &&
 					  (row.pinkStatus === null || row.pinkStatus === 2) && row.delete_time == null" />
-					<a @click="changeMenu(row,'2')">详情</a>
-				</template>
-			</vxe-column>
-	  </vxe-table>
-      <div class="acea-row row-right mt15">
-        <Page :total="total" :current="orderData.page" show-elevator show-total @on-change="pageChange"
-              :page-size="orderData.limit"/>
-      </div>
-    </Card>
-    <!-- 编辑 配送信息表单数据 退款 退积分 不退款-->
-    <edit-from
-      ref="edits"
-      :FromData="FromData"
-      @submitFail="submitFail"
-    ></edit-from>
-    <!-- 详情 -->
-    <details-from
-      ref="detailss"
-      :orderDatalist="orderDatalist"
-      :orderId="orderId"
-	  :row-active="rowActive"
-	  :formType="1"
-    ></details-from>
-    <!-- 会员详情-->
-    <user-details ref="userDetails" fromType="order"></user-details>
-    <!-- 备注 -->
-    <order-remark
-      ref="remarks"
-      :orderId="orderId"
-      @submitFail="submitFail"
-    ></order-remark>
-    <!-- 记录 -->
-    <order-record ref="record"></order-record>
-    <!-- 发送货 -->
-    <order-send
-      ref="send"
-      :orderId="orderId"
-      @submitFail="submitFail"
-    >
-    </order-send>
-    <Modal
-            v-model="manualModal"
-            title="手动批量发货"
-            @on-ok="manualModalOk"
-            @on-cancel="manualModalCancel"
-            class-name="vertical-center-modal"
-    >
-      <Row type="flex">
-        <Col span="4">
-          <div style="line-height: 32px; text-align: right">文件:</div>
-        </Col>
-        <Col span="20">
-          <Upload
-                  ref="upload"
-                  :action="uploadAction"
-                  :headers="uploadHeaders"
-                  accept=".xlsx,.xls"
-                  :format="['xlsx', 'xls']"
-                  :disabled="!!fileList.length"
-                  :on-success="uploadSuccess"
-                  :on-remove="removeFile"
-          >
-            <Button icon="ios-cloud-upload-outline">上传文件</Button>
-          </Upload>
-        </Col>
-      </Row>
-    </Modal>
-    <!--订单核销模态框-->
-    <Modal
-            v-model="modals2"
-            title="订单核销"
-            class="paymentFooter"
-            scrollable
-            width="400"
-            class-name="vertical-center-modal"
-    >
-      <Form
-              ref="writeOffFrom"
-              :model="writeOffFrom"
-              :rules="writeOffRules"
-              :label-position="labelPosition"
-              class="tabform"
-              @submit.native.prevent
-      >
-        <FormItem prop="code" label-for="code">
-          <Input
-                  search
-                  enter-button="验证"
-                  style="width: 100%"
-                  type="text"
-                  placeholder="请输入12位核销码"
-                  @on-search="search('writeOffFrom')"
-                  v-model.number="writeOffFrom.code"
-                  number
-          />
-        </FormItem>
-      </Form>
-      <div slot="footer">
-        <Button type="primary" @click="ok">立即核销</Button>
-        <Button @click="del('writeOffFrom')">取消</Button>
-      </div>
-    </Modal>
-    <auto-send
-        ref="sends"
-        :selectArr="checkUidList"
-		:isAll="isAll"
-    ></auto-send>
-    <queue-list ref="queue"></queue-list>
-  </div>
+						<a @click="changeMenu(row,'2')">详情</a>
+						<Divider type="vertical" v-if="row.pay_status==0||row.pay_status==2" />
+						<a v-if="row.pay_status==0||row.pay_status==2" @click="checkedSend(row)">审核</a>
+					</template>
+				</vxe-column>
+			</vxe-table>
+			<div class="acea-row row-right mt15">
+				<Page :total="total" :current="orderData.page" show-elevator show-total @on-change="pageChange"
+					:page-size="orderData.limit" />
+			</div>
+		</Card>
+		<!-- 编辑 配送信息表单数据 退款 退积分 不退款-->
+		<edit-from ref="edits" :FromData="FromData" @submitFail="submitFail"></edit-from>
+		<!-- 详情 -->
+		<details-from ref="detailss" :orderDatalist="orderDatalist" :orderId="orderId" :row-active="rowActive"
+			:formType="1"></details-from>
+		<!-- 会员详情-->
+		<user-details ref="userDetails" fromType="order"></user-details>
+		<!-- 备注 -->
+		<order-remark ref="remarks" :orderId="orderId" @submitFail="submitFail"></order-remark>
+		<!-- 记录 -->
+		<order-record ref="record"></order-record>
+		<!-- 发送货 -->
+		<order-send ref="send" :orderId="orderId" @submitFail="submitFail">
+		</order-send>
+		<Modal v-model="manualModal" title="手动批量发货" @on-ok="manualModalOk" @on-cancel="manualModalCancel"
+			class-name="vertical-center-modal">
+			<Row type="flex">
+				<Col span="4">
+				<div style="line-height: 32px; text-align: right">文件:</div>
+				</Col>
+				<Col span="20">
+				<Upload ref="upload" :action="uploadAction" :headers="uploadHeaders" accept=".xlsx,.xls"
+					:format="['xlsx', 'xls']" :disabled="!!fileList.length" :on-success="uploadSuccess"
+					:on-remove="removeFile">
+					<Button icon="ios-cloud-upload-outline">上传文件</Button>
+				</Upload>
+				</Col>
+			</Row>
+		</Modal>
+		<!--订单核销模态框-->
+		<Modal v-model="modals2" title="订单核销" class="paymentFooter" scrollable width="400"
+			class-name="vertical-center-modal">
+			<Form ref="writeOffFrom" :model="writeOffFrom" :rules="writeOffRules" :label-position="labelPosition"
+				class="tabform" @submit.native.prevent>
+				<FormItem prop="code" label-for="code">
+					<Input search enter-button="验证" style="width: 100%" type="text" placeholder="请输入12位核销码"
+						@on-search="search('writeOffFrom')" v-model.number="writeOffFrom.code" number />
+				</FormItem>
+			</Form>
+			<div slot="footer">
+				<Button type="primary" @click="ok">立即核销</Button>
+				<Button @click="del('writeOffFrom')">取消</Button>
+			</div>
+		</Modal>
+		<auto-send ref="sends" :selectArr="checkUidList" :isAll="isAll"></auto-send>
+		<queue-list ref="queue"></queue-list>
+		<Modal v-model="showSend" title="进货单审核" width="900">
+			<Form :label-width="labelWidth" :label-position="labelPosition" ref="showSend" :model="sendData" 
+				class="tabform">
+				<FormItem label="支付凭证:">
+					<div class="alertflex" >
+						
+					<div class="tabBox" v-for="it in actionSendData.pay_img"  v-if="actionSendData.pay_img.length>0">
+						<div class="alert_image" v-viewer><img v-lazy="it" /></div>
+					</div>
+					<div v-else>
+						无凭证
+					</div>
+					</div>
+				</FormItem>
+				<FormItem label="备注:">
+					<Input v-model="sendData.mark" placeholder="备注" element-id="name" clearable style="width:500px;"
+						maxlength="20">
+					</Input>
+				</FormItem>
+			</Form>
+			<div slot="footer">
+				<Button @click="sendOrderChecked(2)">拒绝</Button>
+				<Button type="primary" @click="sendOrderChecked(1)">通过</Button>
+			</div>
+		</Modal>
+	</div>
 </template>
 
 <script>
-import { mapState } from "vuex";
-import editFrom from "@/components/from/from";
-import orderSend from "./components/orderSend";
-import detailsFrom from "./components/orderDetails";
-import orderRecord from "./components/orderRecord";
-import orderRemark from "./components/orderRemark";
-import userDetails from "@/components/userDetails/userDetails";
-import autoSend from "./components/autoSend";
-import queueList from "./components/queueList";
-import timeOptions from "@/utils/timeOptions";
-import util from "@/libs/util";
-import Setting from "@/setting";
-import exportExcel from "@/utils/newToExcel.js";
-import expandRow from "./components/tableExpand.vue";
-import {
-  orderList,
-  getOrdeDatas,
-  getDataInfo,
-  getRefundFrom,
-  refundIntegral,
-  getnoRefund,
-  getDistribution,
-  writeUpdate,
-  storeOrderApi,
-  handBatchDelivery,
-  putWrite,
-  exportExpressList
-} from "@/api/order";
-export default {
-  name: "index",
-  components: {
-    editFrom,
-    detailsFrom,
-    orderRecord,
-    orderRemark,
-    orderSend,
-    userDetails,
-    autoSend,
-    queueList
-  },
-  data() {
-    const codeNum = (rule, value, callback) => {
-      if (!value) {
-        return callback(new Error("请填写核销码"));
-      }
-      // 模拟异步验证效果
-      if (!Number.isInteger(value)) {
-        callback(new Error("请填写12位数字"));
-      } else {
-        const reg = /\b\d{12}\b/;
-        if (!reg.test(value)) {
-          callback(new Error("请填写12位数字"));
-        } else {
-          callback();
-        }
-      }
-    };
-    return {
-	  isAll: 0,
-	  isCheckBox: false,
-	  checkUidList:[],
-      manualModal:false,
-      timeVal: [],
-      options: timeOptions,
-      payList: [
-        { label: "全部", val: "" },
-        { label: "微信支付", val: "1" },
-        { label: "支付宝支付", val: "4" },
-        { label: "余额支付", val: "2" },
-        { label: "线下支付", val: "3" },
-      ],
-      // 订单列表
-      orderData: {
-        page: 1,
-        limit: 10,
-        type: "",
-        status: "",
-        data: "",
-        real_name: "",
-        pay_type: "",
-        field_key: "all"
-      },
-      orderList: [],
-      total: 0,
-      loading: false,
-      orderConNum:0,
-      orderConId:0,
-      orderId: 0,
-      delfromData: {},
-      rowActive: {},
-      orderDatalist: null,
-      FromData: null,
-      file: "",
-      uploadAction: `${Setting.apiBaseURL}/file/upload/1`,
-      uploadHeaders: {},
-      fileList: [],
-      modals2: false,
-      writeOffRules: {
-        code: [{ validator: codeNum, trigger: "blur", required: true }],
-      },
-      writeOffFrom: {
-        code: "",
-        confirm: 0,
-      },
-      exportListOn: 0,
-      exportList: [
-        {
-          name: "1",
-          label: "导出发货单",
-        },
-        {
-          name: "0",
-          label: "导出订单",
-        },
-      ],
-    };
-  },
-  watch: {
-    $route() {
-      if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
-        this.getPath();
-      }
-    }
-  },
-  computed: {
-    ...mapState("store/layout", ["isMobile"]),
-    labelWidth() {
-      return this.isMobile ? undefined : 80;
-    },
-    labelPosition() {
-      return this.isMobile ? "top" : "right";
-    },
-  },
-  created() {
-    this.getToken();
-    if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
-      this.getPath();
-    } else {
-      this.getList();
-    }
-  },
-  mounted() {
+	import {
+		mapState
+	} from "vuex";
+	import editFrom from "@/components/from/from";
+	import orderSend from "./components/orderSend";
+	import detailsFrom from "./components/orderDetails";
+	import orderRecord from "./components/orderRecord";
+	import orderRemark from "./components/orderRemark";
+	import userDetails from "@/components/userDetails/userDetails";
+	import autoSend from "./components/autoSend";
+	import queueList from "./components/queueList";
+	import timeOptions from "@/utils/timeOptions";
+	import util from "@/libs/util";
+	import Setting from "@/setting";
+	import exportExcel from "@/utils/newToExcel.js";
+	import expandRow from "./components/tableExpand.vue";
+	import {
+		orderList,
+		getOrdeDatas,
+		getDataInfo,
+		getRefundFrom,
+		refundIntegral,
+		getnoRefund,
+		getDistribution,
+		writeUpdate,
+		storeOrderApi,
+		handBatchDelivery,
+		putWrite,
+		exportExpressList,
+		orderExamine
+	} from "@/api/order";
+	export default {
+		name: "index",
+		components: {
+			editFrom,
+			detailsFrom,
+			orderRecord,
+			orderRemark,
+			orderSend,
+			userDetails,
+			autoSend,
+			queueList
+		},
+		data() {
+			const codeNum = (rule, value, callback) => {
+				if (!value) {
+					return callback(new Error("请填写核销码"));
+				}
+				// 模拟异步验证效果
+				if (!Number.isInteger(value)) {
+					callback(new Error("请填写12位数字"));
+				} else {
+					const reg = /\b\d{12}\b/;
+					if (!reg.test(value)) {
+						callback(new Error("请填写12位数字"));
+					} else {
+						callback();
+					}
+				}
+			};
+			return {
+				showSend: false, //显示审核弹窗
+				actionSendData: {}, //保存点击的商品
+				sendData: {
+					id: '',
+					status: "",
+					mark: '',
+				},
+				isAll: 0,
+				isCheckBox: false,
+				checkUidList: [],
+				manualModal: false,
+				timeVal: [],
+				options: timeOptions,
+				payList: [{
+						label: "全部",
+						val: ""
+					},
+					{
+						label: "微信支付",
+						val: "1"
+					},
+					{
+						label: "支付宝支付",
+						val: "4"
+					},
+					{
+						label: "余额支付",
+						val: "2"
+					},
+					{
+						label: "线下支付",
+						val: "3"
+					},
+				],
+				// 订单列表
+				orderData: {
+					page: 1,
+					limit: 10,
+					type: "",
+					status: "",
+					data: "",
+					real_name: "",
+					pay_type: "",
+					field_key: "all",
+					pay_status: "-1",
+					pay_img_status:1,
+					is_level_order:-1,
+				},
+				orderList: [],
+				total: 0,
+				loading: false,
+				orderConNum: 0,
+				orderConId: 0,
+				orderId: 0,
+				delfromData: {},
+				rowActive: {},
+				orderDatalist: null,
+				FromData: null,
+				file: "",
+				uploadAction: `${Setting.apiBaseURL}/file/upload/1`,
+				uploadHeaders: {},
+				fileList: [],
+				modals2: false,
+				writeOffRules: {
+					code: [{
+						validator: codeNum,
+						trigger: "blur",
+						required: true
+					}],
+				},
+				writeOffFrom: {
+					code: "",
+					confirm: 0,
+				},
+				exportListOn: 0,
+				exportList: [{
+						name: "1",
+						label: "导出发货单",
+					},
+					{
+						name: "0",
+						label: "导出订单",
+					},
+				],
+			};
+		},
+		watch: {
+			$route() {
+				if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+					this.getPath();
+				}
+			}
+		},
+		computed: {
+			...mapState("store/layout", ["isMobile"]),
+			labelWidth() {
+				return this.isMobile ? undefined : 80;
+			},
+			labelPosition() {
+				return this.isMobile ? "top" : "right";
+			},
+		},
+		created() {
+			this.getToken();
+			if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+				this.getPath();
+			} else {
+				this.getList();
+			}
+		},
+		mounted() {
 
-  },
-  methods: {
-    //跳转刷新
-    getPath() {
-      this.orderData.page = 1;
-      this.orderData.status = this.$route.query.status;
-      this.getList();
-    },
-	allReset(){
-	  this.isAll = 0;
-	  this.isCheckBox = false;
-	  this.$refs.xTable.setAllCheckboxRow(false);
-	  this.checkUidList = [];
-	},
-	allPages(e){
-		this.isAll = e;
-		if(e==0){
-		  this.$refs.xTable.toggleAllCheckboxRow();
-		  // this.checkboxAll();
-		}else{
-		  if(!this.isCheckBox){
-		    this.$refs.xTable.setAllCheckboxRow(true);
-		    this.isCheckBox = true;
-		    this.isAll = 1;
-		  }else{
-		    this.$refs.xTable.setAllCheckboxRow(false);
-		    this.isCheckBox = false;
-		    this.isAll = 0;
-		  }
-		  this.checkUidList = []
-		}
-	},
-	checkboxItem(e){
-	  let id = parseInt(e.rowid);
-	  let index = this.checkUidList.indexOf(id);
-	  if(index !== -1){
-	    this.checkUidList = this.checkUidList.filter((item)=> item !== id);
-	  }else{
-	    this.checkUidList.push(id);
-	  }
-	},
-	checkboxAll(){
-	  // 获取选中当前值
-	  let obj2 = this.$refs.xTable.getCheckboxRecords(true);
-	  // 获取之前选中值
-	  let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
-	  if(this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox){
-	  	obj = [];
-	  }
-	  obj = obj.concat(obj2);
-	  let ids = [];
-	  obj.forEach((item)=>{
-	    ids.push(parseInt(item.id))
-	  })
-	  this.checkUidList = ids;
-	  if(!obj2.length){
-	    this.isCheckBox = false;
-	  }
-	},
-    printOreder(){
-	  if (this.checkUidList.length > 10 || (this.isAll==1 && this.total>10)) {
-	    return this.$Message.error('最多批量打印10个订单')
-	  }
-	  let ids = []
-	  if (this.isAll==1 && this.total<=10){
-	    this.orderList.forEach(item=>{
-	      ids.push(parseInt(item.id))
-	    })
-	  }
-      let pathInfo = this.$router.resolve({
-        path:`${Setting.roterPre}/order/distribution`,
-        query:{
-		  id: this.isAll==1?ids.join(','):this.checkUidList.join(','),
-        }
-      });
-      window.open(pathInfo.href, '_blank');
-    },
-    reset(){
-      this.timeVal = [];
-      this.orderData = {
-        page: 1,
-        limit: 10,
-        type: "",
-        status: "",
-        data: "",
-        real_name: "",
-        pay_type: ""
-      };
-      this.getList();
-    },
-    queuemModal() {
-      this.$refs.queue.modal = true;
-    },
-    delAll(){
-	  if (this.checkUidList.length === 0 && this.isAll==0) {
-	    return this.$Message.error('请先选择删除的订单!')
-	  }
-	  let idss = {
-	    all: this.isAll,
-	    ids: this.checkUidList,
-	  }
-	  let delfromData = {
-	    title: "删除订单",
-	    url: `/order/dels`,
-	    method: "post",
-	    ids: idss,
-	  };
-	  this.$modalSure(delfromData).then((res) => {
-	    this.$Message.success(res.msg);
-	    this.allReset();
-	    this.getList();
-	  }).catch((res) => {
-	    this.$Message.error(res.msg);
-	  });
-    },
-    onAuto(){
-      this.$refs.sends.modals = true;
-      this.$refs.sends.getList();
-      this.$refs.sends.getDeliveryList();
-    },
-    // 订单导出
-    async exports(value) {
-      this.exportListOn = this.exportList.findIndex(
-              (item) => item.name === value
-      );
-      let [th, filekey, data, fileName] = [[], [], [], ""];
-      let excelData = JSON.parse(JSON.stringify(this.orderData));
-      excelData.page = 1;
-      excelData.type = value;
-      excelData.ids = this.checkUidList.join();
-      for (let i = 0; i < excelData.page + 1; i++) {
-        let lebData = await this.downOrderData(excelData);
-        if (!fileName) fileName = lebData.filename;
-        if (!filekey.length) {
-          filekey = lebData.filekey;
-        }
-        if (!th.length) th = lebData.header;
-        if (lebData.export.length) {
-          data = data.concat(lebData.export);
-          excelData.page++;
-        } else {
-          exportExcel(th, filekey, fileName, data);
-          return;
-        }
-      }
-    },
-    downOrderData(excelData) {
-      return new Promise((resolve, reject) => {
-        storeOrderApi(excelData).then((res) => {
-          return resolve(res.data);
-        });
-      });
-    },
-    // 订单核销
-    writeOff() {
-      this.modals2 = true;
-    },
-    // 验证
-    search(name) {
-      this.$refs[name].validate((valid) => {
-        if (valid) {
-          this.writeOffFrom.confirm = 0;
-          putWrite(this.writeOffFrom)
-                  .then(async (res) => {
-                    if (res.status === 200) {
-                      this.$Message.success(res.msg);
-                    } else {
-                      this.$Message.error(res.msg);
-                    }
-                  })
-                  .catch((res) => {
-                    this.$Message.error(res.msg);
-                  });
-        } else {
-          this.$Message.error("请填写正确的核销码");
-        }
-      });
-    },
-    // 订单核销
-    ok() {
-      if (!this.writeOffFrom.code) {
-        this.$Message.warning("请先验证订单!");
-      } else {
-        this.writeOffFrom.confirm = 1;
-        putWrite(this.writeOffFrom)
-                .then(async (res) => {
-                  if (res.status === 200) {
-                    this.$Message.success(res.msg);
-                    this.modals2 = false;
-                    this.$refs[name].resetFields();
-                    this.getList()
-                  } else {
-                    this.$Message.error(res.msg);
-                  }
-                })
-                .catch((res) => {
-                  this.$Message.error(res.msg);
-                });
-      }
-    },
-    del(name) {
-      this.modals2 = false;
-      this.writeOffFrom.confirm = 0;
-      this.$refs[name].resetFields();
-    },
-    // 上传头部token
-    getToken() {
-      this.uploadHeaders["Authori-zation"] = "Bearer " + util.cookies.get("token");
-    },
-    // 上传成功
-    uploadSuccess(res, file, fileList) {
-      if (res.status === 200) {
-        this.$Message.success(res.msg);
-        this.file = res.data.src;
-        this.fileList = fileList;
-      } else {
-        this.$Message.error(res.msg);
-      }
-    },
-    //移除文件
-    removeFile(file, fileList) {
-      this.file = "";
-      this.fileList = fileList;
-    },
-    // 下载物流公司对照表
-    async getExpressList() {
-      let [th, filekey, data, fileName] = [[], [], [], ""];
-      let lebData = await this.getExcelData();
-      if (!fileName) fileName = lebData.filename;
-      if (!filekey.length) {
-        filekey = lebData.filekey;
-      }
-      if (!th.length) th = lebData.header;
-      data = lebData.export;
-      exportExcel(th, filekey, fileName, data);
-    },
-    getExcelData() {
-      return new Promise((resolve, reject) => {
-        exportExpressList().then((res) => {
-          return resolve(res.data);
-        });
-      });
-    },
-    // 手动批量发货-确定
-    manualModalOk() {
-      this.$refs.upload.clearFiles();
-      handBatchDelivery({ file: this.file,}).then((res) => {
-        this.$Message.success(res.msg);
-        this.fileList = [];
-      }).catch((err) => {
-        this.$Message.error(err.msg);
-        this.fileList = [];
-      });
-    },
-    // 手动批量发货-取消
-    manualModalCancel() {
-      this.fileList = [];
-      this.$refs.upload.clearFiles();
-    },
-    // 核销订单
-    bindWrite(row) {
-      let self = this;
-      this.$Modal.confirm({
-        title: "提示",
-        content: "确定要核销该订单吗?",
-        cancelText: "取消",
-        closable: true,
-        maskClosable: true,
-        onOk: function () {
-          writeUpdate(row.order_id).then((res) => {
-            self.$Message.success(res.msg);
-            self.getList();
-          });
-        },
-        onCancel: () => {},
-      });
-    },
-    // 配送信息表单数据
-    delivery(row,num) {
-      getDistribution(row.id).then(async (res) => {
-        this.orderConNum = num;
-        this.orderConId = row.pid;
-        this.FromData = res.data;
-        this.$refs.edits.modals = true;
-        if(num !=1){
-          this.getData(this.orderId,1);
-        }
-      }).catch((res) => {
-        this.$Message.error(res.msg);
-      });
-    },
-    // 编辑
-    edit(row) {
-      this.getOrderData(row.id);
-    },
-    // 获取编辑表单数据
-    getOrderData(id) {
-      getOrdeDatas(id).then(async (res) => {
-        if (res.data.status === false) {
-          return this.$authLapse(res.data);
-        }
-        this.$authLapse(res.data);
-        this.FromData = res.data;
-        this.$refs.edits.modals = true;
-      }).catch((res) => {
-        this.$Message.error(res.msg);
-      });
-    },
-    // 发送货
-    sendOrder(row,num) {
-      this.orderConId = row.pid;
-      this.orderConNum = num;
-      this.$store.commit("store/order/setSplitOrder", row.total_num);
-      this.$refs.send.modals = true;
-      this.orderId = row.id;
-      this.$refs.send.getList();
-      this.$refs.send.getDeliveryList();
-      this.$nextTick((e) => {
-        this.$refs.send.getCartInfo(row._status, row.id);
-      });
-    },
-    // 修改成功
-    submitFail() {
-      this.getList();
-      if(this.orderConNum !=1){
-        this.getData(this.orderId,1);
-      }else{
-        this.$refs.detailss.getSplitOrder(this.orderConId);
-      }
-    },
-    // 操作
-    changeMenu(row, name, num) {
-      this.orderId = row.id;
-      this.orderConId = row.pid>0?row.pid:row.id;
-      this.orderConNum = num;
-      switch (name) {
-        case "1":
-          this.delfromData = {
-            title: "修改立即支付",
-            url: `/order/pay_offline/${row.id}`,
-            method: "post",
-            ids: "",
-          };
-          this.$modalSure(this.delfromData)
-                  .then((res) => {
-                    this.$Message.success(res.msg);
-                    this.getData(row.id,1);
-                    this.getList();
-                  })
-                  .catch((res) => {
-                    this.$Message.error(res.msg);
-                  });
-          break;
-        case "2":
-          this.rowActive = row;
-          this.getData(row.id);
-          break;
-        case "3":
-          this.$refs.record.modals = true;
-          this.$refs.record.getList(row.id);
-          break;
-        case "4":
-          this.$refs.remarks.formValidate.remark = row.remark;
-          this.$refs.remarks.modals = true;
-          break;
-        case "5":
-          this.getOnlyRefundData(row.id, row.refund_type);
-          break;
-        case "55":
-          this.getRefundData(row.id, row.refund_type);
-          break;
-        case "6":
-          this.getRefundIntegral(row.id);
-          break;
-        case "7":
-          this.getNoRefundData(row.id);
-          break;
-        case "8":
-          this.delfromData = {
-            title: "修改确认收货",
-            url: `/order/take/${row.id}`,
-            method: "put",
-            ids: "",
-          };
-          this.$modalSure(this.delfromData)
-                  .then((res) => {
-                    this.$Message.success(res.msg);
-                    this.getList();
-                    if(num){
-                      this.$refs.detailss.getSplitOrder(row.pid)
-                    }else{
-                      this.getData(row.id,1);
-                    }
-                  })
-                  .catch((res) => {
-                    this.$Message.error(res.msg);
-                  });
-          break;
-        case "10":
-          this.delfromData = {
-            title: "立即打印订单",
-            info: "您确认打印此订单吗?",
-            url: `/order/print/${row.id}`,
-            method: "get",
-            ids: "",
-          };
-          this.$modalSure(this.delfromData)
-                  .then((res) => {
-                    this.$Message.success(res.msg);
-                    this.getList();
-                  })
-                  .catch((res) => {
-                    this.$Message.error(res.msg);
-                  });
-          break;
-        case "11":
-          this.delfromData = {
-            title: "立即打印电子面单",
-            info: "您确认打印此电子面单吗?",
-            url: `/order/order_dump/${row.id}`,
-            method: "get",
-            ids: "",
-          };
-          this.$modalSure(this.delfromData)
-                  .then((res) => {
-                    this.$Message.success(res.msg);
-                    this.getList();
-                  })
-                  .catch((res) => {
-                    this.$Message.error(res.msg);
-                  });
-          break;
-        case "12":
-          let pathInfo = this.$router.resolve({
-            path:`${Setting.roterPre}/order/distribution`,
-            query:{
-              id:row.id
-            }
-          });
-          window.open(pathInfo.href, '_blank');
-          break;
-        default:
-          this.delfromData = {
-            title: "删除订单",
-            url: `/order/del/${row.id}`,
-            method: "DELETE",
-            ids: "",
-          };
-          this.delOrder(row, this.delfromData);
-      }
-    },
-    // 获取详情表单数据
-    getData(id,type) {
-      getDataInfo(id)
-              .then(async (res) => {
-                if(!type){
-                  this.$refs.detailss.modals = true;
-                }
-                this.$refs.detailss.activeName = 'detail';
-                this.orderDatalist = res.data;
-                if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
-                  try {
-                    this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
-                            this.orderDatalist.orderInfo.refund_reason_wap_img
-                    );
-                  } catch (e) {
-                    this.orderDatalist.orderInfo.refund_reason_wap_img = [];
-                  }
-                }
-              })
-              .catch((res) => {
-                this.$Message.error(res.msg);
-              });
-    },
-    // 仅退款
-    getOnlyRefundData(id, refund_type) {
-      this.$modalForm(getRefundFrom(id)).then(() => {
-        this.getList();
-        this.$refs.detailss.modals = false;
-      });
-    },
-    // 退货退款
-    getRefundData(id, refund_type) {
-      this.delfromData = {
-        title: "是否立即退货退款",
-        url: `/refund/agree/${id}`,
-        method: "get",
-      };
-      this.$modalSure(this.delfromData)
-              .then((res) => {
-                this.$Message.success(res.msg);
-                this.getList();
-              })
-              .catch((res) => {
-                this.$Message.error(res.msg);
-              });
-    },
-    // 获取退积分表单数据
-    getRefundIntegral(id) {
-      refundIntegral(id)
-              .then(async (res) => {
-                this.FromData = res.data;
-                this.$refs.edits.modals = true;
-              })
-              .catch((res) => {
-                this.$Message.error(res.msg);
-              });
-    },
-    // 不退款表单数据
-    getNoRefundData(id) {
-      this.$modalForm(getnoRefund(id)).then(() => {
-        this.getList();
-      });
-    },
-    // 删除单条订单
-    delOrder(row, data) {
-      if (row.is_del === 1) {
-        this.$modalSure(data)
-                .then((res) => {
-                  this.$Message.success(res.msg);
-                  this.getList();
-                  this.$refs.detailss.modals = false;
-                })
-                .catch((res) => {
-                  this.$Message.error(res.msg);
-                });
-      } else {
-        const title = "错误!";
-        const content =
-                "<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>";
-        this.$Modal.error({
-          title: title,
-          content: content,
-        });
-      }
-    },
-    getList(){
-      this.loading = true;
-      orderList(this.orderData).then(res=>{
-        let data = res.data;
-        data.data.forEach((item)=>{
-          if(item.id == this.orderId){
-            this.rowActive = item;
-          }
-        });
-        this.$set(this,'orderList',data.data);
-        this.total = res.data.count;
-        this.loading = false;
-		this.$nextTick(function(){
-		  if (this.isAll == 1) {
-		    if(this.isCheckBox){
-		      this.$refs.xTable.setAllCheckboxRow(true);
-		    }else{
-		      this.$refs.xTable.setAllCheckboxRow(false);
-		    }
-		  }else{
-			let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
-			if(!this.checkUidList.length || this.checkUidList.length <= obj.length){
-			  this.$refs.xTable.setAllCheckboxRow(false);
+		},
+		methods: {
+			allOrderChecked(){
+				if (this.checkUidList.length === 0 && this.isAll == 0) {
+					return this.$Message.error('请先选择删除的订单!')
+				}
+				let idss = {
+					all: this.isAll,
+					ids: this.checkUidList,
+				}
+				
+				this.sendData.id=this.checkUidList.join(',');
+				this.sendData.status =1
+				let delfromData = {
+					title: "审核通过订单",
+					url: `/order/examine`,
+					method: "post",
+					ids: this.sendData,
+				};
+				this.$modalSure(delfromData).then((res) => {
+					this.$Message.success(res.msg);
+					this.allReset();
+					this.getList();
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			// 通过拒绝审核
+			sendOrderChecked(type) {
+				if (type == 2 && this.sendData.mark == "") {
+					this.$Message.error("请填写拒绝原因");
+					return
+				}
+				this.sendData.status = type;
+				orderExamine(this.sendData)
+					.then((res) => {
+						this.$Message.success(res.msg);
+						this.getList();
+						this.showSend = false;
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+
+			},
+			// 点击显示弹窗
+			checkedSend(item) {
+				this.showSend = true;
+				this.actionSendData = item;
+				this.sendData.id = item.id;
+			},
+			//跳转刷新
+			getPath() {
+				this.orderData.page = 1;
+				this.orderData.status = this.$route.query.status;
+				this.getList();
+			},
+			allReset() {
+				this.isAll = 0;
+				this.isCheckBox = false;
+				this.$refs.xTable.setAllCheckboxRow(false);
+				this.checkUidList = [];
+			},
+			allPages(e) {
+				this.isAll = e;
+				if (e == 0) {
+					this.$refs.xTable.toggleAllCheckboxRow();
+					// this.checkboxAll();
+				} else {
+					if (!this.isCheckBox) {
+						this.$refs.xTable.setAllCheckboxRow(true);
+						this.isCheckBox = true;
+						this.isAll = 1;
+					} else {
+						this.$refs.xTable.setAllCheckboxRow(false);
+						this.isCheckBox = false;
+						this.isAll = 0;
+					}
+					this.checkUidList = []
+				}
+			},
+			checkboxItem(e) {
+				let id = parseInt(e.rowid);
+				let index = this.checkUidList.indexOf(id);
+				if (index !== -1) {
+					this.checkUidList = this.checkUidList.filter((item) => item !== id);
+				} else {
+					this.checkUidList.push(id);
+				}
+			},
+			checkboxAll() {
+				// 获取选中当前值
+				let obj2 = this.$refs.xTable.getCheckboxRecords(true);
+				// 获取之前选中值
+				let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
+				if (this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox) {
+					obj = [];
+				}
+				obj = obj.concat(obj2);
+				let ids = [];
+				obj.forEach((item) => {
+					ids.push(parseInt(item.id))
+				})
+				this.checkUidList = ids;
+				if (!obj2.length) {
+					this.isCheckBox = false;
+				}
+			},
+			printOreder() {
+				if (this.checkUidList.length > 10 || (this.isAll == 1 && this.total > 10)) {
+					return this.$Message.error('最多批量打印10个订单')
+				}
+				let ids = []
+				if (this.isAll == 1 && this.total <= 10) {
+					this.orderList.forEach(item => {
+						ids.push(parseInt(item.id))
+					})
+				}
+				let pathInfo = this.$router.resolve({
+					path: `${Setting.roterPre}/order/distribution`,
+					query: {
+						id: this.isAll == 1 ? ids.join(',') : this.checkUidList.join(','),
+					}
+				});
+				window.open(pathInfo.href, '_blank');
+			},
+			reset() {
+				this.timeVal = [];
+				this.orderData = {
+					page: 1,
+					limit: 10,
+					type: "",
+					status: "",
+					data: "",
+					real_name: "",
+					pay_type: "",
+					field_key: "all",
+					pay_status: "-1",
+					pay_img_status:1,
+					is_level_order:-1,
+				};
+				this.getList();
+			},
+			queuemModal() {
+				this.$refs.queue.modal = true;
+			},
+			delAll() {
+				if (this.checkUidList.length === 0 && this.isAll == 0) {
+					return this.$Message.error('请先选择删除的订单!')
+				}
+				let idss = {
+					all: this.isAll,
+					ids: this.checkUidList,
+				}
+				let delfromData = {
+					title: "删除订单",
+					url: `/order/dels`,
+					method: "post",
+					ids: idss,
+				};
+				this.$modalSure(delfromData).then((res) => {
+					this.$Message.success(res.msg);
+					this.allReset();
+					this.getList();
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			onAuto() {
+				this.$refs.sends.modals = true;
+				this.$refs.sends.getList();
+				this.$refs.sends.getDeliveryList();
+			},
+			// 订单导出
+			async exports(value) {
+				this.exportListOn = this.exportList.findIndex(
+					(item) => item.name === value
+				);
+				let [th, filekey, data, fileName] = [
+					[],
+					[],
+					[], ""
+				];
+				let excelData = JSON.parse(JSON.stringify(this.orderData));
+				excelData.page = 1;
+				excelData.type = value;
+				excelData.ids = this.checkUidList.join();
+				for (let i = 0; i < excelData.page + 1; i++) {
+					let lebData = await this.downOrderData(excelData);
+					if (!fileName) fileName = lebData.filename;
+					if (!filekey.length) {
+						filekey = lebData.filekey;
+					}
+					if (!th.length) th = lebData.header;
+					if (lebData.export.length) {
+						data = data.concat(lebData.export);
+						excelData.page++;
+					} else {
+						exportExcel(th, filekey, fileName, data);
+						return;
+					}
+				}
+			},
+			downOrderData(excelData) {
+				return new Promise((resolve, reject) => {
+					storeOrderApi(excelData).then((res) => {
+						return resolve(res.data);
+					});
+				});
+			},
+			// 订单核销
+			writeOff() {
+				this.modals2 = true;
+			},
+			// 验证
+			search(name) {
+				this.$refs[name].validate((valid) => {
+					if (valid) {
+						this.writeOffFrom.confirm = 0;
+						putWrite(this.writeOffFrom)
+							.then(async (res) => {
+								if (res.status === 200) {
+									this.$Message.success(res.msg);
+								} else {
+									this.$Message.error(res.msg);
+								}
+							})
+							.catch((res) => {
+								this.$Message.error(res.msg);
+							});
+					} else {
+						this.$Message.error("请填写正确的核销码");
+					}
+				});
+			},
+			// 订单核销
+			ok() {
+				if (!this.writeOffFrom.code) {
+					this.$Message.warning("请先验证订单!");
+				} else {
+					this.writeOffFrom.confirm = 1;
+					putWrite(this.writeOffFrom)
+						.then(async (res) => {
+							if (res.status === 200) {
+								this.$Message.success(res.msg);
+								this.modals2 = false;
+								this.$refs[name].resetFields();
+								this.getList()
+							} else {
+								this.$Message.error(res.msg);
+							}
+						})
+						.catch((res) => {
+							this.$Message.error(res.msg);
+						});
+				}
+			},
+			del(name) {
+				this.modals2 = false;
+				this.writeOffFrom.confirm = 0;
+				this.$refs[name].resetFields();
+			},
+			// 上传头部token
+			getToken() {
+				this.uploadHeaders["Authori-zation"] = "Bearer " + util.cookies.get("token");
+			},
+			// 上传成功
+			uploadSuccess(res, file, fileList) {
+				if (res.status === 200) {
+					this.$Message.success(res.msg);
+					this.file = res.data.src;
+					this.fileList = fileList;
+				} else {
+					this.$Message.error(res.msg);
+				}
+			},
+			//移除文件
+			removeFile(file, fileList) {
+				this.file = "";
+				this.fileList = fileList;
+			},
+			// 下载物流公司对照表
+			async getExpressList() {
+				let [th, filekey, data, fileName] = [
+					[],
+					[],
+					[], ""
+				];
+				let lebData = await this.getExcelData();
+				if (!fileName) fileName = lebData.filename;
+				if (!filekey.length) {
+					filekey = lebData.filekey;
+				}
+				if (!th.length) th = lebData.header;
+				data = lebData.export;
+				exportExcel(th, filekey, fileName, data);
+			},
+			getExcelData() {
+				return new Promise((resolve, reject) => {
+					exportExpressList().then((res) => {
+						return resolve(res.data);
+					});
+				});
+			},
+			// 手动批量发货-确定
+			manualModalOk() {
+				this.$refs.upload.clearFiles();
+				handBatchDelivery({
+					file: this.file,
+				}).then((res) => {
+					this.$Message.success(res.msg);
+					this.fileList = [];
+				}).catch((err) => {
+					this.$Message.error(err.msg);
+					this.fileList = [];
+				});
+			},
+			// 手动批量发货-取消
+			manualModalCancel() {
+				this.fileList = [];
+				this.$refs.upload.clearFiles();
+			},
+			// 核销订单
+			bindWrite(row) {
+				let self = this;
+				this.$Modal.confirm({
+					title: "提示",
+					content: "确定要核销该订单吗?",
+					cancelText: "取消",
+					closable: true,
+					maskClosable: true,
+					onOk: function() {
+						writeUpdate(row.order_id).then((res) => {
+							self.$Message.success(res.msg);
+							self.getList();
+						});
+					},
+					onCancel: () => {},
+				});
+			},
+			// 配送信息表单数据
+			delivery(row, num) {
+				getDistribution(row.id).then(async (res) => {
+					this.orderConNum = num;
+					this.orderConId = row.pid;
+					this.FromData = res.data;
+					this.$refs.edits.modals = true;
+					if (num != 1) {
+						this.getData(this.orderId, 1);
+					}
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			// 编辑
+			edit(row) {
+				this.getOrderData(row.id);
+			},
+			// 获取编辑表单数据
+			getOrderData(id) {
+				getOrdeDatas(id).then(async (res) => {
+					if (res.data.status === false) {
+						return this.$authLapse(res.data);
+					}
+					this.$authLapse(res.data);
+					this.FromData = res.data;
+					this.$refs.edits.modals = true;
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			// 发送货
+			sendOrder(row, num) {
+				this.orderConId = row.pid;
+				this.orderConNum = num;
+				this.$store.commit("store/order/setSplitOrder", row.total_num);
+				this.$refs.send.modals = true;
+				this.orderId = row.id;
+				this.$refs.send.getList();
+				this.$refs.send.getDeliveryList();
+				this.$nextTick((e) => {
+					this.$refs.send.getCartInfo(row._status, row.id);
+				});
+			},
+			// 修改成功
+			submitFail() {
+				this.getList();
+				if (this.orderConNum != 1) {
+					this.getData(this.orderId, 1);
+				} else {
+					this.$refs.detailss.getSplitOrder(this.orderConId);
+				}
+			},
+			// 操作
+			changeMenu(row, name, num) {
+				this.orderId = row.id;
+				this.orderConId = row.pid > 0 ? row.pid : row.id;
+				this.orderConNum = num;
+				switch (name) {
+					case "1":
+						this.delfromData = {
+							title: "修改立即支付",
+							url: `/order/pay_offline/${row.id}`,
+							method: "post",
+							ids: "",
+						};
+						this.$modalSure(this.delfromData)
+							.then((res) => {
+								this.$Message.success(res.msg);
+								this.getData(row.id, 1);
+								this.getList();
+							})
+							.catch((res) => {
+								this.$Message.error(res.msg);
+							});
+						break;
+					case "2":
+						this.rowActive = row;
+						this.getData(row.id);
+						break;
+					case "3":
+						this.$refs.record.modals = true;
+						this.$refs.record.getList(row.id);
+						break;
+					case "4":
+						this.$refs.remarks.formValidate.remark = row.remark;
+						this.$refs.remarks.modals = true;
+						break;
+					case "5":
+						this.getOnlyRefundData(row.id, row.refund_type);
+						break;
+					case "55":
+						this.getRefundData(row.id, row.refund_type);
+						break;
+					case "6":
+						this.getRefundIntegral(row.id);
+						break;
+					case "7":
+						this.getNoRefundData(row.id);
+						break;
+					case "8":
+						this.delfromData = {
+							title: "修改确认收货",
+							url: `/order/take/${row.id}`,
+							method: "put",
+							ids: "",
+						};
+						this.$modalSure(this.delfromData)
+							.then((res) => {
+								this.$Message.success(res.msg);
+								this.getList();
+								if (num) {
+									this.$refs.detailss.getSplitOrder(row.pid)
+								} else {
+									this.getData(row.id, 1);
+								}
+							})
+							.catch((res) => {
+								this.$Message.error(res.msg);
+							});
+						break;
+					case "10":
+						this.delfromData = {
+							title: "立即打印订单",
+							info: "您确认打印此订单吗?",
+							url: `/order/print/${row.id}`,
+							method: "get",
+							ids: "",
+						};
+						this.$modalSure(this.delfromData)
+							.then((res) => {
+								this.$Message.success(res.msg);
+								this.getList();
+							})
+							.catch((res) => {
+								this.$Message.error(res.msg);
+							});
+						break;
+					case "11":
+						this.delfromData = {
+							title: "立即打印电子面单",
+							info: "您确认打印此电子面单吗?",
+							url: `/order/order_dump/${row.id}`,
+							method: "get",
+							ids: "",
+						};
+						this.$modalSure(this.delfromData)
+							.then((res) => {
+								this.$Message.success(res.msg);
+								this.getList();
+							})
+							.catch((res) => {
+								this.$Message.error(res.msg);
+							});
+						break;
+					case "12":
+						let pathInfo = this.$router.resolve({
+							path: `${Setting.roterPre}/order/distribution`,
+							query: {
+								id: row.id
+							}
+						});
+						window.open(pathInfo.href, '_blank');
+						break;
+					default:
+						this.delfromData = {
+							title: "删除订单",
+							url: `/order/del/${row.id}`,
+							method: "DELETE",
+							ids: "",
+						};
+						this.delOrder(row, this.delfromData);
+				}
+			},
+			// 获取详情表单数据
+			getData(id, type) {
+				getDataInfo(id)
+					.then(async (res) => {
+						if (!type) {
+							this.$refs.detailss.modals = true;
+						}
+						this.$refs.detailss.activeName = 'detail';
+						this.orderDatalist = res.data;
+						if (this.orderDatalist.orderInfo.refund_reason_wap_img) {
+							try {
+								this.orderDatalist.orderInfo.refund_reason_wap_img = JSON.parse(
+									this.orderDatalist.orderInfo.refund_reason_wap_img
+								);
+							} catch (e) {
+								this.orderDatalist.orderInfo.refund_reason_wap_img = [];
+							}
+						}
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			// 仅退款
+			getOnlyRefundData(id, refund_type) {
+				this.$modalForm(getRefundFrom(id)).then(() => {
+					this.getList();
+					this.$refs.detailss.modals = false;
+				});
+			},
+			// 退货退款
+			getRefundData(id, refund_type) {
+				this.delfromData = {
+					title: "是否立即退货退款",
+					url: `/refund/agree/${id}`,
+					method: "get",
+				};
+				this.$modalSure(this.delfromData)
+					.then((res) => {
+						this.$Message.success(res.msg);
+						this.getList();
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			// 获取退积分表单数据
+			getRefundIntegral(id) {
+				refundIntegral(id)
+					.then(async (res) => {
+						this.FromData = res.data;
+						this.$refs.edits.modals = true;
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			// 不退款表单数据
+			getNoRefundData(id) {
+				this.$modalForm(getnoRefund(id)).then(() => {
+					this.getList();
+				});
+			},
+			// 删除单条订单
+			delOrder(row, data) {
+				if (row.is_del === 1) {
+					this.$modalSure(data)
+						.then((res) => {
+							this.$Message.success(res.msg);
+							this.getList();
+							this.$refs.detailss.modals = false;
+						})
+						.catch((res) => {
+							this.$Message.error(res.msg);
+						});
+				} else {
+					const title = "错误!";
+					const content =
+						"<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>";
+					this.$Modal.error({
+						title: title,
+						content: content,
+					});
+				}
+			},
+			getList() {
+				this.loading = true;
+				orderList(this.orderData).then(res => {
+					let data = res.data;
+					data.data.forEach((item) => {
+						if (item.id == this.orderId) {
+							this.rowActive = item;
+						}
+					});
+					this.$set(this, 'orderList', data.data);
+					this.total = res.data.count;
+					this.loading = false;
+					this.$nextTick(function() {
+						if (this.isAll == 1) {
+							if (this.isCheckBox) {
+								this.$refs.xTable.setAllCheckboxRow(true);
+							} else {
+								this.$refs.xTable.setAllCheckboxRow(false);
+							}
+						} else {
+							let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
+							if (!this.checkUidList.length || this.checkUidList.length <= obj.length) {
+								this.$refs.xTable.setAllCheckboxRow(false);
+							}
+						}
+					})
+				}).catch(err => {
+					this.loading = false;
+					this.$Message.error(err.msg)
+				})
+			},
+			// 具体日期
+			onchangeTime(e) {
+				if (e[1].slice(-8) === "00:00:00") {
+					e[1] = e[1].slice(0, -8) + "23:59:59";
+					this.timeVal = e;
+				} else {
+					this.timeVal = e;
+				}
+				this.orderData.data = this.timeVal[0] ? this.timeVal.join("-") : "";
+				this.orderData.page = 1;
+				this.allReset();
+				this.getList();
+			},
+			showUserInfo(row) {
+				this.$refs.userDetails.modals = true;
+				this.$refs.userDetails.activeName = 'info';
+				this.$refs.userDetails.getDetails(row.uid);
+			},
+			pageChange(index) {
+				this.orderData.page = index;
+				this.getList();
+			},
+			userSearchs() {
+				this.allReset();
+				this.orderData.page = 1;
+				this.getList();
 			}
-		  }
-		})
-      }).catch(err=>{
-        this.loading = false;
-        this.$Message.error(err.msg)
-      })
-    },
-    // 具体日期
-    onchangeTime(e) {
-      if (e[1].slice(-8) === "00:00:00") {
-        e[1] = e[1].slice(0, -8) + "23:59:59";
-        this.timeVal = e;
-      } else {
-        this.timeVal = e;
-      }
-      this.orderData.data = this.timeVal[0] ? this.timeVal.join("-") : "";
-      this.orderData.page = 1;
-	  this.allReset();
-      this.getList();
-    },
-    showUserInfo(row) {
-      this.$refs.userDetails.modals = true;
-      this.$refs.userDetails.activeName = 'info';
-      this.$refs.userDetails.getDetails(row.uid);
-    },
-    pageChange(index) {
-      this.orderData.page = index;
-      this.getList();
-    },
-    userSearchs(){
-	  this.allReset();
-      this.orderData.page = 1;
-      this.getList();
-    }
-  },
-};
+		},
+	};
 </script>
 
 <style lang="stylus" scoped>
-  .tdinfo{
-    margin-left: 75px;
-    margin-top: 16px;
-  }
-  .expand-row{
-    margin-bottom: 16px;
-    font-size: 12px;
-  }
-  .tabBox {
-    width: 100%;
-    height: 100%;
-    display: flex;
-    align-items: center;
+	.tdinfo {
+		margin-left: 75px;
+		margin-top: 16px;
+	}
+
+	.expand-row {
+		margin-bottom: 16px;
+		font-size: 12px;
+	}
+	.alertflex{
+		display: flex;
+		justify-content: flex-start
+		flex-wrap: wrap
+	}
+	.tabBox {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		.alert_image{
+			width: 300px;
+			height: 300px;
+			
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.tabBox_img {
+			width: 30px;
+			height: 30px;
 
-    .tabBox_img {
-      width: 30px;
-      height: 30px;
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
 
-      img {
-        width: 100%;
-        height: 100%;
-      }
-    }
+		.tabBox_tit {
+			width: 267px;
+			height: 30px;
+			line-height: 30px;
+			font-size: 12px !important;
+			margin: 0 2px 0 10px;
+			letter-spacing: 1px;
+			box-sizing: border-box;
+		}
+	}
 
-    .tabBox_tit {
-      width:267px;
-      height:30px;
-      line-height:30px;
-      font-size: 12px !important;
-      margin: 0 2px 0 10px;
-      letter-spacing: 1px;
-      box-sizing: border-box;
-    }
-  }
-  .tabBox +.tabBox{
-    margin-top:5px;
-  }
-</style>
+	.tabBox+.tabBox {
+		margin-top: 5px;
+	}
+</style>

+ 565 - 0
src/pages/order/stock/index.vue

@@ -0,0 +1,565 @@
+<template>
+	<div>
+		<Card :bordered="false" dis-hover class="mt15">
+			<Form ref="orderData" :model="orderData" :label-width="labelWidth" :label-position="labelPosition"
+				class="tabform" @submit.native.prevent>
+				<div class="acea-row">
+					<FormItem label="时间选择:">
+						<DatePicker :editable="false" :clearable="true" @on-change="onchangeTime" :value="timeVal"
+							format="yyyy/MM/dd HH:mm:ss" type="datetimerange" placement="bottom-start"
+							placeholder="自定义时间" style="width: 250px" class="mr30" :options="options"></DatePicker>
+					</FormItem>
+					<FormItem label="订单审核:">
+						<Select v-model="orderData.status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部">
+							<Option value="-1">全部</Option>
+							<Option value="0">审核中</Option>
+							<Option value="1">已通过</Option>
+							<Option value="2">未通过</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="凭证:">
+						<Select v-model="orderData.pay_img_status" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部订单">
+							<Option :value="0">没有凭证</Option>
+							<Option :value="1">有凭证</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="货架:">
+						<Select v-model="orderData.level_id" style="width: 250px" class="mr30" clearable
+							@on-change="userSearchs" placeholder="全部">
+							<Option value="">全部</Option>
+							<Option :value="it.id" v-for="it in levelList">{{it.name}}</Option>
+						</Select>
+					</FormItem>
+					<FormItem label="用户UID:">
+						<Input v-model="orderData.uid" placeholder="请输入用户UID" element-id="name" clearable
+							style="width:250px;" maxlength="20">
+						</Input>
+					</FormItem>
+					<Button type="primary" @click="userSearchs" class="ml20">查询</Button>
+					<Button @click="reset" class="ml20">重置</Button>
+				</div>
+			</Form>
+		</Card>
+		<Card :bordered="false" dis-hover class="mt15">
+			<div class="acea-row row-between">
+				<div>
+					<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
+						<Button class="mr10" type="primary" :disabled="!checkUidList.length && isAll==0" @click="delAll">批量审核</Button>
+					</Tooltip>
+					<!-- <Button class="mr10" type="primary" @click="manualModal = true">手动批量发货</Button> -->
+					<Tooltip content="本页至少选中一项" :disabled="!!checkUidList.length && isAll==0">
+					</Tooltip>
+				</div>
+			</div>
+			<vxe-table border="inner" ref="xTable" class="mt25" :loading="loading" row-id="id"
+				:expand-config="{accordion: true}" :checkbox-config="{reserve: true}" @checkbox-all="checkboxAll"
+				@checkbox-change="checkboxItem" :data="orderList">
+				<vxe-column type="" width="0"></vxe-column>
+				<vxe-column type="checkbox" width="100">
+					<template #header>
+						<div>
+							<Dropdown transfer @on-click="allPages">
+								<a href="javascript:void(0)" class="acea-row row-middle">
+									<span>全选({{isAll==1?(total-checkUidList.length):checkUidList.length}})</span>
+									<Icon type="ios-arrow-down"></Icon>
+								</a>
+								<template #list>
+									<DropdownMenu>
+										<DropdownItem name="0">当前页</DropdownItem>
+										<!-- <DropdownItem name="1">所有页</DropdownItem> -->
+									</DropdownMenu>
+								</template>
+							</Dropdown>
+						</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="id" title="ID"  width="80"></vxe-column>
+				<vxe-column field="info" title="进货货架" min-width="100">
+					<template v-slot="{ row }">
+						{{row.level_name}}
+					</template>
+				</vxe-column>
+				<vxe-column field="store_name" title="进货门店" min-width="130">
+					<template v-slot="{ row }">
+						{{ row.store_name }}
+						(ID:{{ row.store_id }})[UID:{{row.uid}}]
+					</template>
+				</vxe-column>
+				<vxe-column field="img" title="支付凭证" min-width="130">
+					<template v-slot="{ row }">
+						<div class="tabBox" v-for="it in row.img" v-if="row.img.length>0">
+							<div class="tabBox_img" v-viewer><img v-lazy="it" /></div>
+						</div>
+						<div v-else>
+							无凭证
+						</div>
+					</template>
+				</vxe-column>
+
+				<vxe-column field="add_time" title="创建时间" min-width="110"></vxe-column>
+				<vxe-column field="number" title="进货数量" min-width="90">
+					<template v-slot="{ row }">
+						<div>{{row.number}}</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="is_status" title="审核状态" min-width="90">
+					<template v-slot="{ row }">
+						<div v-if="row.is_status==0">审核中</div>
+						<div v-if="row.is_status==1">已通过</div>
+						<div v-if="row.is_status==2">已拒绝</div>
+					</template>
+				</vxe-column>
+				<vxe-column field="action" title="操作" align="center" width="130" fixed="right">
+					<template v-slot="{ row }">
+						<a v-if="row.is_status==0" @click="checkedSend(row)">审核</a>
+						<a v-if="row.is_status==1" @click="backOrder(row)">退单</a>
+					</template>
+				</vxe-column>
+			</vxe-table>
+			<div class="acea-row row-right mt15">
+				<Page :total="total" :current="orderData.page" show-elevator show-total @on-change="pageChange"
+					:page-size="orderData.limit" />
+			</div>
+		</Card>
+		<Modal v-model="showSend" title="进货单审核" width="750">
+			<Form :label-width="labelWidth" :label-position="labelPosition" ref="orderData" :model="sendData"
+				class="tabform">
+				<FormItem label="支付凭证:">
+					<div class="tabBox"  v-if="actionSendData.img.length>0">
+						<div class="alert_img" v-for="it in actionSendData.img" v-viewer>
+							<img v-lazy="it" />
+						</div>
+					</div>
+					<div v-else>
+						无凭证
+					</div>
+				</FormItem>
+				<FormItem label="备注:">
+					<Input v-model="sendData.mark" placeholder="备注" element-id="name" clearable style="width:500px;"
+						maxlength="20">
+					</Input>
+				</FormItem>
+			</Form>
+			<div slot="footer">
+				<Button @click="sendOrder(2)">拒绝</Button>
+				<Button type="primary" @click="sendOrder(1)">通过</Button>
+			</div>
+		</Modal>
+		<!-- 会员详情-->
+		<user-details ref="userDetails" fromType="order"></user-details>
+	</div>
+</template>
+
+<script>
+	import {
+		mapState
+	} from "vuex";
+	import userDetails from "@/components/userDetails/userDetails";
+	import timeOptions from "@/utils/timeOptions";
+	import util from "@/libs/util";
+	import Setting from "@/setting";
+	import exportExcel from "@/utils/newToExcel.js";
+	import {
+		orderShelvesLst,
+		shelves_lst,
+		storeOrderApi,
+		shelves_verify
+	} from "@/api/order";
+	export default {
+		name: "index",
+		components: {
+			userDetails,
+		},
+		data() {
+			return {
+				showSend: false, //显示审核弹窗
+				actionSendData: {
+					img:[]
+				}, //保存点击的商品
+				levelList: [], //货架列表
+				sendData: {
+					id: '',
+					status: "",
+					mark: '',
+				},
+				isAll: 0,
+				isCheckBox: false,
+				checkUidList: [],
+				timeVal: [],
+				options: timeOptions,
+				// 订单列表
+				orderData: {
+					page: 1,
+					limit: 10,
+					level_id: "",
+					status: "0",
+					start_time: "",
+					end_time: "",
+					pay_img_status:1,
+					uid:''
+				},
+				orderList: [],
+				total: 0,
+				loading: false,
+				orderId: 0,
+				delfromData: {},
+				rowActive: {},
+				exportListOn: 0,
+				exportList: [
+					// {
+					//   name: "1",
+					//   label: "导出发货单",
+					// },
+					{
+						name: "0",
+						label: "导出订单",
+					},
+				],
+			};
+		},
+		watch: {
+			$route() {
+				if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+					this.getPath();
+				}
+			}
+		},
+		computed: {
+			...mapState("store/layout", ["isMobile"]),
+			labelWidth() {
+				return this.isMobile ? undefined : 80;
+			},
+			labelPosition() {
+				return this.isMobile ? "top" : "right";
+			},
+		},
+		created() {
+			if (this.$route.fullPath === `${Setting.roterPre}/order/list?type=7&status=1`) {
+				this.getPath();
+			} else {
+				this.getList();
+			}
+		},
+		mounted() {
+			this.shelves_lst();
+		},
+		methods: {
+			// 通过拒绝审核
+			sendOrder(type) {
+				if (type == 2 && this.sendData.mark == "") {
+					this.$Message.error("请填写拒绝原因");
+					return
+				}
+				this.sendData.status = type;
+				shelves_verify(this.sendData)
+					.then((res) => {
+						this.$Message.success(res.msg);
+						this.getList();
+						this.showSend = false;
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+
+			},
+			// 点击显示弹窗
+			checkedSend(item) {
+				this.showSend = true;
+				this.actionSendData = item;
+				this.sendData.id = item.id;
+			},
+			// 获取货架列表
+			shelves_lst() {
+				shelves_lst().then((res) => {
+					this.levelList = res.data;
+					console.log(this.levelList)
+				});
+			},
+			//跳转刷新
+			getPath() {
+				this.orderData.page = 1;
+				this.orderData.status = this.$route.query.status;
+				this.getList();
+			},
+			allReset() {
+				this.isAll = 0;
+				this.isCheckBox = false;
+				this.$refs.xTable.setAllCheckboxRow(false);
+				this.checkUidList = [];
+			},
+			allPages(e) {
+				this.isAll = e;
+				if (e == 0) {
+					this.$refs.xTable.toggleAllCheckboxRow();
+					// this.checkboxAll();
+				} else {
+					if (!this.isCheckBox) {
+						this.$refs.xTable.setAllCheckboxRow(true);
+						this.isCheckBox = true;
+						this.isAll = 1;
+					} else {
+						this.$refs.xTable.setAllCheckboxRow(false);
+						this.isCheckBox = false;
+						this.isAll = 0;
+					}
+					this.checkUidList = []
+				}
+			},
+			checkboxItem(e) {
+				let id = parseInt(e.rowid);
+				let index = this.checkUidList.indexOf(id);
+				if (index !== -1) {
+					this.checkUidList = this.checkUidList.filter((item) => item !== id);
+				} else {
+					this.checkUidList.push(id);
+				}
+			},
+			checkboxAll() {
+				// 获取选中当前值
+				let obj2 = this.$refs.xTable.getCheckboxRecords(true);
+				// 获取之前选中值
+				let obj = this.$refs.xTable.getCheckboxReserveRecords(true);
+				if (this.isAll == 0 && this.checkUidList.length <= obj.length && !this.isCheckBox) {
+					obj = [];
+				}
+				obj = obj.concat(obj2);
+				let ids = [];
+				obj.forEach((item) => {
+					ids.push(parseInt(item.id))
+				})
+				this.checkUidList = ids;
+				if (!obj2.length) {
+					this.isCheckBox = false;
+				}
+			},
+			reset() {
+				this.timeVal = [];
+				this.orderData = {
+					page: 1,
+					limit: 10,
+					level_id: "",
+					status: "0",
+					start_time: "",
+					end_time: "",
+					pay_img_status:1,
+					uid:''
+				};
+				this.getList();
+			},
+			queuemModal() {
+				this.$refs.queue.modal = true;
+			},
+			delAll() {
+				if (this.checkUidList.length === 0 && this.isAll == 0) {
+					return this.$Message.error('请先选择删除的订单!')
+				}
+				let idss = {
+					all: this.isAll,
+					ids: this.checkUidList,
+				}
+				
+				this.sendData.id=this.checkUidList.join(',');
+				this.sendData.status =1
+				let delfromData = {
+					title: "审核通过订单",
+					url: `/order/shelves_verify`,
+					method: "post",
+					ids: this.sendData,
+				};
+				this.$modalSure(delfromData).then((res) => {
+					this.$Message.success(res.msg);
+					this.allReset();
+					this.getList();
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			// 退单
+			backOrder(item) {
+				let delfromData = {
+					title: "进货单退单",
+					url: `/order/update_shelves_refund/${item.id}`,
+					method: "put",
+				};
+				this.$modalSure(delfromData).then((res) => {
+					this.$Message.success(res.msg);
+					this.allReset();
+					this.getList();
+				}).catch((res) => {
+					this.$Message.error(res.msg);
+				});
+			},
+			onAuto() {
+				this.$refs.sends.modals = true;
+				this.$refs.sends.getList();
+				this.$refs.sends.getDeliveryList();
+			},
+			// 订单导出
+			async exports(value) {
+				this.exportListOn = this.exportList.findIndex(
+					(item) => item.name === value
+				);
+				let [th, filekey, data, fileName] = [
+					[],
+					[],
+					[], ""
+				];
+				let excelData = JSON.parse(JSON.stringify(this.orderData));
+				excelData.page = 1;
+				excelData.type = value;
+				excelData.ids = this.checkUidList.join();
+				for (let i = 0; i < excelData.page + 1; i++) {
+					let lebData = await this.downOrderData(excelData);
+					if (!fileName) fileName = lebData.filename;
+					if (!filekey.length) {
+						filekey = lebData.filekey;
+					}
+					if (!th.length) th = lebData.header;
+					if (lebData.export.length) {
+						data = data.concat(lebData.export);
+						excelData.page++;
+					} else {
+						exportExcel(th, filekey, fileName, data);
+						return;
+					}
+				}
+			},
+			downOrderData(excelData) {
+				return new Promise((resolve, reject) => {
+					storeOrderApi(excelData).then((res) => {
+						return resolve(res.data);
+					});
+				});
+			},
+			// 删除单条订单
+			delOrder(row, data) {
+				if (row.is_del === 1) {
+					this.$modalSure(data)
+						.then((res) => {
+							this.$Message.success(res.msg);
+							this.getList();
+							this.$refs.detailss.modals = false;
+						})
+						.catch((res) => {
+							this.$Message.error(res.msg);
+						});
+				} else {
+					const title = "错误!";
+					const content =
+						"<p>您选择的的订单存在用户未删除的订单,无法删除用户未删除的订单!</p>";
+					this.$Modal.error({
+						title: title,
+						content: content,
+					});
+				}
+			},
+			getList() {
+				this.loading = true;
+				orderShelvesLst(this.orderData).then(res => {
+					let data = res.data;
+					let list = data.list.map((s)=>{
+						if(s.status=="已通过"){
+							s.is_status = 1
+							return s;
+						}
+						if(s.status=="已拒绝"){
+							s.is_status = 2
+							return s;
+						}
+						if(s.status=="审核中"){
+							s.is_status = 0
+							return s;
+						}
+					})
+					this.$set(this, 'orderList', data.list);
+					this.total = res.data.count;
+					this.loading = false;
+				}).catch(err => {
+					this.loading = false;
+					this.$Message.error(err.msg)
+				})
+			},
+			// 具体日期
+			onchangeTime(e) {
+				if (e[1].slice(-8) === "00:00:00") {
+					e[1] = e[1].slice(0, -8) + "23:59:59";
+					this.timeVal = e;
+				} else {
+					this.timeVal = e;
+				}
+				this.orderData.start_time = this.timeVal[0] || "";
+				this.orderData.end_time = this.timeVal[1] || "";
+				this.orderData.page = 1;
+				this.allReset();
+				this.getList();
+			},
+			// showUserInfo(row) {
+			// 	this.$refs.userDetails.modals = true;
+			// 	this.$refs.userDetails.activeName = 'info';
+			// 	this.$refs.userDetails.getDetails(row.uid);
+			// },
+			pageChange(index) {
+				this.orderData.page = index;
+				this.getList();
+			},
+			userSearchs() {
+				this.allReset();
+				this.orderData.page = 1;
+				this.getList();
+			}
+		},
+	};
+</script>
+
+<style lang="stylus" scoped>
+	.tdinfo {
+		margin-left: 75px;
+		margin-top: 16px;
+	}
+
+	.expand-row {
+		margin-bottom: 16px;
+		font-size: 12px;
+	}
+
+	.tabBox {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		align-items: center;
+		.alert_img{
+			width: 300px;
+			height: 300px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.tabBox_img {
+			width: 30px;
+			height: 30px;
+
+			img {
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		.tabBox_tit {
+			width: 267px;
+			height: 30px;
+			line-height: 30px;
+			font-size: 12px !important;
+			margin: 0 2px 0 10px;
+			letter-spacing: 1px;
+			box-sizing: border-box;
+		}
+	}
+
+	.tabBox+.tabBox {
+		margin-top: 5px;
+	}
+</style>

+ 3489 - 3757
src/pages/product/productEdit/index.vue

@@ -1,3777 +1,3509 @@
 <template>
-  <div class="article-manager video-icon form-submit" id="shopp-manager">
-    <div class="i-layout-page-header">
-      <PageHeader class="product_tabs">
-        <div slot="title" class="acea-row row-middle">
-          <router-link :to="{ path: `${roterPre}/product/index` }">
-            <div class="font-sm after-line">
-              <span class="iconfont iconfanhui"></span>
-              <span class="pl10">返回</span>
-            </div>
-          </router-link>
-          <span v-text="$route.params.id ? '编辑商品' : '添加商品'" class="mr20 ml16"></span>
-        </div>
-      </PageHeader>
-    </div>
-    <Card :bordered="false" dis-hover class="ivu-mt">
-      <div class="new_tab">
-        <Tabs v-model="currentTab" @on-click="onhangeTab">
-          <TabPane
-              v-for="(item, index) in headTab"
-              :key="index"
-              :label="item.title"
-              :name="item.name"
-          ></TabPane>
-        </Tabs>
-      </div>
-      <Form
-          class="formValidate mt20"
-          ref="formValidate"
-          :rules="ruleValidate"
-          :model="formValidate"
-          :label-width="labelWidth"
-          :label-position="labelPosition"
-          @submit.native.prevent
-      >
-        <Row :gutter="24" type="flex" v-show="currentTab === '1'">
-          <!-- 商品信息-->
-          <!--<Col span="24">-->
-          <!--<FormItem label="商品类型:" props="is_virtual">-->
-          <!--<div-->
-          <!--class="productType"-->
-          <!--:class="formValidate.product_type == item.id ? 'on' : ''-->
-          <!--"-->
-          <!--v-for="(item, index) in productType"-->
-          <!--:key="index"-->
-          <!--@click="productTypeTap(1,item)"-->
-          <!--&gt;-->
-          <!--<div class="name">{{ item.name }}</div>-->
-          <!--<div class="title">({{ item.title }})</div>-->
-          <!--<div-->
-          <!--v-if="formValidate.product_type == item.id"-->
-          <!--class="jiao"-->
-          <!--&gt;</div>-->
-          <!--<div-->
-          <!--v-if="formValidate.product_type == item.id"-->
-          <!--class="iconfont iconduihao"-->
-          <!--&gt;</div>-->
-          <!--</div>-->
-          <!--</FormItem>-->
-          <!--</Col>-->
-          <Col span="24">
-            <FormItem label="商品名称:" prop="store_name">
-              <Input
-                  v-model="formValidate.store_name"
-                  placeholder="请输入商品名称"
-                  v-width="'50%'"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品分类:" prop="cate_id">
-              <el-cascader
-                  placeholder="请选择商品分类"
-                  v-width="'50%'"
-                  size="mini"
-                  v-model="formValidate.cate_id"
-                  :options="treeSelect"
-                  :props="props"
-                  filterable
-                  clearable>
-              </el-cascader>
-              <!--<span class="addClass" @click="addClass">新增分类</span>-->
-            </FormItem>
-          </Col>
-          <Col span="24" class="brandName">
-            <FormItem label="商品品牌:" prop="">
-              <Cascader
-                  :data="brandData"
-                  placeholder="请选择商品品牌"
-                  change-on-select
-                  v-model="formValidate.brand_id"
-                  filterable
-                  v-width="'50%'"
-              ></Cascader>
-              <!-- <span class="addClass" @click="addBrand">新增品牌</span>-->
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="单位:" prop="unit_name">
-              <Select
-                  v-model="formValidate.unit_name"
-                  clearable
-                  filterable
-                  v-width="'50%'"
-                  placeholder="请输入单位"
-              >
-                <Option
-                    v-for="(item, index) in unitNameList"
-                    :value="item.name"
-                    :key="index"
-                >{{ item.name }}</Option
-                >
-              </Select>
-              <!-- <span class="addClass" @click="addUnit">新增单位</span>-->
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品标签:" prop="store_label_id" class="labelClass">
-              <div class="acea-row row-middle">
-                <div class="labelInput acea-row row-between-wrapper" @click="openStoreLabel">
-                  <div style="width: 90%;">
-                    <div v-if="storeDataLabel.length">
-                      <Tag closable v-for="(item,index) in storeDataLabel" @on-close="closeStoreLabel(item)">{{item.label_name}}</Tag>
-                    </div>
-                    <span class="span" v-else>选择商品标签</span>
-                  </div>
-                  <div class="iconfont iconxiayi"></div>
-                </div>
-                <span class="addClass" @click="addStoreLabel">新增标签</span>
-              </div>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品编码:" prop="">
-              <Input
-                  v-model="formValidate.code"
-                  placeholder="请输入商品编码"
-                  v-width="'50%'"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品轮播图:" prop="slider_image">
-              <div class="acea-row">
-                <div
-                    class="pictrue"
-                    v-for="(item, index) in formValidate.slider_image"
-                    :key="index"
-                    draggable="true"
-                    @dragstart="handleDragStart($event, item)"
-                    @dragover.prevent="handleDragOver($event, item)"
-                    @dragenter="handleDragEnter($event, item)"
-                    @dragend="handleDragEnd($event, item)"
-                >
-                  <img v-lazy="item" />
-                  <Button
-                      shape="circle"
-                      icon="md-close"
-                      @click.native="handleRemove(index)"
-                      class="btndel"
-                  ></Button>
-                </div>
-                <div
-                    v-if="formValidate.slider_image.length < 10"
-                    class="upLoad acea-row row-center-wrapper"
-                    @click="modalPicTap('duo')"
-                >
-                  <Icon type="ios-camera-outline" size="26" />
-                </div>
-                <Input
-                    v-model="formValidate.slider_image[0]"
-                    class="input-display"
-                ></Input>
-              </div>
-              <div class="tips"> 建议尺寸:800 * 800px,可拖拽改变图片顺序,默认首张图为主图,最多上传10张</div>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="添加视频:">
-              <i-switch v-model="formValidate.video_open" size="large">
-                <span slot="open">开启</span>
-                <span slot="close">关闭</span>
-              </i-switch>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.video_open">
-            <FormItem label="视频类型:">
-              <RadioGroup v-model="seletVideo" @on-change="changeVideo">
-                <Radio :label="0" class="radio">本地视频</Radio>
-                <Radio :label="1">视频链接</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.video_open">
-            <FormItem label="" prop="video_link">
-              <Input
-                  v-if="seletVideo == 1 && !formValidate.video_link"
-                  v-width="'50%'"
-                  v-model="videoLink"
-                  placeholder="请输入视频链接"
-              />
-              <input
-                  type="file"
-                  ref="refid"
-                  @change="zh_uploadFile_change"
-                  class="input-display"
-              />
-              <div
-                  v-if="
+	<div class="article-manager video-icon form-submit" id="shopp-manager">
+		<div class="i-layout-page-header">
+			<PageHeader class="product_tabs">
+				<div slot="title" class="acea-row row-middle">
+					<router-link :to="{ path: `${roterPre}/product/index` }">
+						<div class="font-sm after-line">
+							<span class="iconfont iconfanhui"></span>
+							<span class="pl10">返回</span>
+						</div>
+					</router-link>
+					<span v-text="$route.params.id ? '编辑商品' : '添加商品'" class="mr20 ml16"></span>
+				</div>
+			</PageHeader>
+		</div>
+		<Card :bordered="false" dis-hover class="ivu-mt">
+			<div class="new_tab">
+				<Tabs v-model="currentTab" @on-click="onhangeTab">
+					<TabPane v-for="(item, index) in headTab" :key="index" :label="item.title" :name="item.name">
+					</TabPane>
+				</Tabs>
+			</div>
+			<Form class="formValidate mt20" ref="formValidate" :rules="ruleValidate" :model="formValidate"
+				:label-width="labelWidth" :label-position="labelPosition" @submit.native.prevent>
+				<Row :gutter="24" type="flex" v-show="currentTab === '1'">
+					<!-- 商品信息-->
+					<!--<Col span="24">-->
+					<!--<FormItem label="商品类型:" props="is_virtual">-->
+					<!--<div-->
+					<!--class="productType"-->
+					<!--:class="formValidate.product_type == item.id ? 'on' : ''-->
+					<!--"-->
+					<!--v-for="(item, index) in productType"-->
+					<!--:key="index"-->
+					<!--@click="productTypeTap(1,item)"-->
+					<!--&gt;-->
+					<!--<div class="name">{{ item.name }}</div>-->
+					<!--<div class="title">({{ item.title }})</div>-->
+					<!--<div-->
+					<!--v-if="formValidate.product_type == item.id"-->
+					<!--class="jiao"-->
+					<!--&gt;</div>-->
+					<!--<div-->
+					<!--v-if="formValidate.product_type == item.id"-->
+					<!--class="iconfont iconduihao"-->
+					<!--&gt;</div>-->
+					<!--</div>-->
+					<!--</FormItem>-->
+					<!--</Col>-->
+					<Col span="24">
+					<FormItem label="商品名称:" prop="store_name">
+						<Input v-model="formValidate.store_name" placeholder="请输入商品名称" v-width="'50%'" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品分类:" prop="cate_id">
+						<el-cascader placeholder="请选择商品分类" v-width="'50%'" size="mini" v-model="formValidate.cate_id"
+							:options="treeSelect" :props="props" filterable clearable>
+						</el-cascader>
+						<!--<span class="addClass" @click="addClass">新增分类</span>-->
+					</FormItem>
+					</Col>
+					<Col span="24" class="brandName">
+					<FormItem label="商品品牌:" prop="">
+						<Cascader :data="brandData" placeholder="请选择商品品牌" change-on-select
+							v-model="formValidate.brand_id" filterable v-width="'50%'"></Cascader>
+						<!-- <span class="addClass" @click="addBrand">新增品牌</span>-->
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="单位:" prop="unit_name">
+						<Select v-model="formValidate.unit_name" clearable filterable v-width="'50%'" placeholder="请输入单位">
+							<Option v-for="(item, index) in unitNameList" :value="item.name" :key="index">{{ item.name }}</Option>
+						</Select>
+						<!-- <span class="addClass" @click="addUnit">新增单位</span>-->
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="货架:" prop="bid">
+						<Select v-model="formValidate.bid" clearable v-width="'50%'"
+							placeholder="请选择绑定货架">
+							<Option  value="" >不绑定</Option>
+							<Option v-for="(item, index) in levelList" :value="item.id" :key="index">{{ item.name }}</Option>
+						</Select>
+						<!-- <span class="addClass" @click="addUnit">新增单位</span>-->
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品标签:" prop="store_label_id" class="labelClass">
+						<div class="acea-row row-middle">
+							<div class="labelInput acea-row row-between-wrapper" @click="openStoreLabel">
+								<div style="width: 90%;">
+									<div v-if="storeDataLabel.length">
+										<Tag closable v-for="(item,index) in storeDataLabel"
+											@on-close="closeStoreLabel(item)">{{item.label_name}}</Tag>
+									</div>
+									<span class="span" v-else>选择商品标签</span>
+								</div>
+								<div class="iconfont iconxiayi"></div>
+							</div>
+							<span class="addClass" @click="addStoreLabel">新增标签</span>
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品编码:" prop="">
+						<Input v-model="formValidate.code" placeholder="请输入商品编码" v-width="'50%'" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品轮播图:" prop="slider_image">
+						<div class="acea-row">
+							<div class="pictrue" v-for="(item, index) in formValidate.slider_image" :key="index"
+								draggable="true" @dragstart="handleDragStart($event, item)"
+								@dragover.prevent="handleDragOver($event, item)"
+								@dragenter="handleDragEnter($event, item)" @dragend="handleDragEnd($event, item)">
+								<img v-lazy="item" />
+								<Button shape="circle" icon="md-close" @click.native="handleRemove(index)"
+									class="btndel"></Button>
+							</div>
+							<div v-if="formValidate.slider_image.length < 10" class="upLoad acea-row row-center-wrapper"
+								@click="modalPicTap('duo')">
+								<Icon type="ios-camera-outline" size="26" />
+							</div>
+							<Input v-model="formValidate.slider_image[0]" class="input-display"></Input>
+						</div>
+						<div class="tips"> 建议尺寸:800 * 800px,可拖拽改变图片顺序,默认首张图为主图,最多上传10张</div>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="添加视频:">
+						<i-switch v-model="formValidate.video_open" size="large">
+							<span slot="open">开启</span>
+							<span slot="close">关闭</span>
+						</i-switch>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.video_open">
+					<FormItem label="视频类型:">
+						<RadioGroup v-model="seletVideo" @on-change="changeVideo">
+							<Radio :label="0" class="radio">本地视频</Radio>
+							<Radio :label="1">视频链接</Radio>
+						</RadioGroup>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.video_open">
+					<FormItem label="" prop="video_link">
+						<Input v-if="seletVideo == 1 && !formValidate.video_link" v-width="'50%'" v-model="videoLink"
+							placeholder="请输入视频链接" />
+						<input type="file" ref="refid" @change="zh_uploadFile_change" class="input-display" />
+						<div v-if="
 			      seletVideo == 0 &&
 			      (upload_type !== '1' || videoLink) &&
 			      !formValidate.video_link
-			    "
-                  class="ml10 videbox"
-                  @click="zh_uploadFile"
-              >
-                +
-              </div>
-              <Button
-                  v-if="
+			    " class="ml10 videbox" @click="zh_uploadFile">
+							+
+						</div>
+						<Button v-if="
 			      seletVideo == 1 &&
 			      (upload_type !== '1' || videoLink) &&
 			      !formValidate.video_link
-			    "
-                  type="primary"
-                  icon="ios-cloud-upload-outline"
-                  class="uploadVideo"
-                  @click="zh_uploadFile"
-              >确认添加</Button>
-              <Upload
-                  v-if="upload_type === '1' && !videoLink"
-                  :show-upload-list="false"
-                  :action="fileUrl2"
-                  :before-upload="videoSaveToUrl"
-                  :data="uploadData"
-                  :headers="header"
-                  :multiple="true"
-                  style="display: inline-block"
-              >
-                <div
-                    v-if="seletVideo === 0 && !formValidate.video_link"
-                    class="videbox"
-                >
-                  +
-                </div>
-              </Upload>
-              <div class="iview-video-style" v-if="formValidate.video_link">
-                <video
-                    class="video-style"
-                    :src="formValidate.video_link"
-                    controls="controls"
-                >
-                  您的浏览器不支持 video 标签。
-                </video>
-                <div class="mark"></div>
-                <Icon
-                    type="ios-trash-outline"
-                    class="iconv"
-                    @click="delVideo"
-                />
-              </div>
-              <Progress
-                  class="progress"
-                  :percent="progress"
-                  :stroke-width="5"
-                  v-if="upload.videoIng || videoIng"
-              />
-              <div class="tips">建议时长:9~30秒,视频宽高比16:9</div>
-            </FormItem>
-          </Col>
-          <Col span="24" class="goodsShow">
-            <FormItem label="上架时间:">
-              <RadioGroup v-model="formValidate.is_show" @on-change="goodsOn">
-                <Radio :label="1">
-                  <Icon type="social-apple"></Icon>
-                  <span>立即上架</span>
-                </Radio>
-                <Radio :label="2">
-                  <Icon type="social-android"></Icon>
-                  <span>定时上架</span>
-                </Radio>
-                <Radio :label="0">
-                  <Icon type="social-windows"></Icon>
-                  <span>放入仓库</span>
-                </Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.is_show==2">
-            <FormItem label="">
-              <DatePicker type="datetime" @on-change="onchangeShow" :options="startPickOptions"  :value="formValidate.auto_on_time" v-model="formValidate.auto_on_time"  placeholder="请选择上架时间" format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
-            </FormItem>
-          </Col>
-          <Col span="24" class="goodsShow">
-            <FormItem label="定时下架:">
-              <Switch v-model="off_show" :true-value="1" :false-value="0" size="large" @on-change="goodsOff">
-                <span slot="open">开启</span>
-                <span slot="close">关闭</span>
-              </Switch>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="off_show==1">
-            <FormItem label="">
-              <DatePicker type="datetime" @on-change="onchangeOff" :options="endPickOptions" :value="formValidate.auto_off_time" v-model="formValidate.auto_off_time" placeholder="请选择下架时间" format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
-              <div class="tips">开启定时下架后,系统会在设置时间下架该商品。下架时间需晚于开售时间,商品才能定时开售。</div>
-            </FormItem>
-          </Col>
-        </Row>
-        <Row :gutter="24" type="flex" v-show="currentTab === '2'">
-          <Col span="24">
-            <FormItem label="商品规格:" props="spec_type">
-              <RadioGroup
-                  v-model="formValidate.spec_type"
-                  @on-change="changeSpec"
-              >
-                <Radio :label="0" class="radio">单规格</Radio>
-                <Radio :label="1">多规格</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <!-- 多规格添加-->
-          <Col span="24" v-if="formValidate.spec_type === 1" class="noForm">
-            <!-- <Col span="24" v-if="!$route.params.id"> -->
-            <Col span="24">
-              <FormItem label="选择规格:" prop="" >
-                <div class="acea-row row-middle">
-                  <Select v-model="formValidate.selectRule" style="width: 23%">
-                    <Option
-                        v-for="(item, index) in ruleList"
-                        :value="item.rule_name"
-                        :key="index"
-                    >{{ item.rule_name }}</Option
-                    >
-                  </Select>
-                  <Button type="primary" class="mr20" @click="confirm"
-                  >确认</Button
-                  >
-                  <Button @click="addRule">添加规格模板</Button>
-                </div>
-              </FormItem>
-            </Col>
-            <Col span="24">
-              <FormItem v-if="attrs.length !== 0">
-                <draggable
-                    class="dragArea list-group"
-                    :list="attrs"
-                    group="peoples"
-                    handle=".move-icon"
-                    :move="checkMove"
-                    @end="end"
-                >
-                  <div
-                      v-for="(item, index) in attrs"
-                      :key="index"
-                      class="acea-row row-middle mb10"
-                  >
-                    <div class="move-icon">
-                      <span class="iconfont icondrag2"></span>
-                    </div>
-                    <div
-                        style="width: 90%"
-                        :class="moveIndex === index ? 'borderStyle' : ''"
-                    >
-                      <div class="acea-row row-middle">
-			              <span class="mr5">{{ item.value }}</span
-                    ><Icon
-                          type="ios-close-circle"
-                          size="14"
-                          class="curs"
-                          @click="handleRemoveRole(index)"
-                      />
-                      </div>
-                      <div class="rulesBox">
-                        <draggable :list="item.detail" handle=".drag">
-                          <Tag
-                              type="dot"
-                              closable
-                              color="primary"
-                              v-for="(j, indexn) in item.detail"
-                              :key="indexn"
-                              :name="j"
-                              class="mr20 drag"
-                              @on-close="handleRemove2(item.detail, indexn)"
-                          >{{ j }}</Tag
-                          >
-                        </draggable>
-                        <Input
-                            search
-                            enter-button="添加"
-                            placeholder="请输入属性名称"
-                            v-model="item.detail.attrsVal"
-                            @on-search="createAttr(item.detail.attrsVal, index)"
-                            class="width-add"
-                        />
-                      </div>
-                    </div>
-                  </div>
-                </draggable>
-              </FormItem>
-            </Col>
-            <Col span="24" v-if="createBnt">
-              <FormItem>
-                <Button
-                    type="primary"
-                    icon="md-add"
-                    @click="addBtn"
-                    class="mr15"
-                >添加新规格</Button
-                >
-                <Button type="success" @click="generate(1)">立即生成</Button>
-              </FormItem>
-            </Col>
-            <Col span="24" v-if="showIput">
-              <Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
-                <FormItem label="规格:">
-                  <Input
-                      placeholder="请输入规格"
-                      v-model="formDynamic.attrsName"
-                  />
-                </FormItem>
-              </Col>
-              <Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
-                <FormItem label="规格值:">
-                  <Input
-                      v-model="formDynamic.attrsVal"
-                      placeholder="请输入规格值"
-                  />
-                </FormItem>
-              </Col>
-              <Col :xl="6" :lg="5" :md="10" :sm="24" :xs="24">
-                <FormItem>
-                  <Button type="primary" class="mr15" @click="createAttrName"
-                  >确定</Button
-                  >
-                  <Button @click="offAttrName">取消</Button>
-                </FormItem>
-              </Col>
-            </Col>
-            <!-- 多规格设置-->
-            <Col
-                :xl="24"
-                :lg="24"
-                :md="24"
-                :sm="24"
-                :xs="24"
-                v-if="
+			    " type="primary" icon="ios-cloud-upload-outline" class="uploadVideo" @click="zh_uploadFile">确认添加</Button>
+						<Upload v-if="upload_type === '1' && !videoLink" :show-upload-list="false" :action="fileUrl2"
+							:before-upload="videoSaveToUrl" :data="uploadData" :headers="header" :multiple="true"
+							style="display: inline-block">
+							<div v-if="seletVideo === 0 && !formValidate.video_link" class="videbox">
+								+
+							</div>
+						</Upload>
+						<div class="iview-video-style" v-if="formValidate.video_link">
+							<video class="video-style" :src="formValidate.video_link" controls="controls">
+								您的浏览器不支持 video 标签。
+							</video>
+							<div class="mark"></div>
+							<Icon type="ios-trash-outline" class="iconv" @click="delVideo" />
+						</div>
+						<Progress class="progress" :percent="progress" :stroke-width="5"
+							v-if="upload.videoIng || videoIng" />
+						<div class="tips">建议时长:9~30秒,视频宽高比16:9</div>
+					</FormItem>
+					</Col>
+					<Col span="24" class="goodsShow">
+					<FormItem label="上架时间:">
+						<RadioGroup v-model="formValidate.is_show" @on-change="goodsOn">
+							<Radio :label="1">
+								<Icon type="social-apple"></Icon>
+								<span>立即上架</span>
+							</Radio>
+							<Radio :label="2">
+								<Icon type="social-android"></Icon>
+								<span>定时上架</span>
+							</Radio>
+							<Radio :label="0">
+								<Icon type="social-windows"></Icon>
+								<span>放入仓库</span>
+							</Radio>
+						</RadioGroup>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.is_show==2">
+					<FormItem label="">
+						<DatePicker type="datetime" @on-change="onchangeShow" :options="startPickOptions"
+							:value="formValidate.auto_on_time" v-model="formValidate.auto_on_time" placeholder="请选择上架时间"
+							format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
+					</FormItem>
+					</Col>
+					<Col span="24" class="goodsShow">
+					<FormItem label="定时下架:">
+						<Switch v-model="off_show" :true-value="1" :false-value="0" size="large" @on-change="goodsOff">
+							<span slot="open">开启</span>
+							<span slot="close">关闭</span>
+						</Switch>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="off_show==1">
+					<FormItem label="">
+						<DatePicker type="datetime" @on-change="onchangeOff" :options="endPickOptions"
+							:value="formValidate.auto_off_time" v-model="formValidate.auto_off_time"
+							placeholder="请选择下架时间" format="yyyy-MM-dd HH:mm" style="width: 260px;"></DatePicker>
+						<div class="tips">开启定时下架后,系统会在设置时间下架该商品。下架时间需晚于开售时间,商品才能定时开售。</div>
+					</FormItem>
+					</Col>
+				</Row>
+				<Row :gutter="24" type="flex" v-show="currentTab === '2'">
+					<Col span="24">
+					<FormItem label="商品规格:" props="spec_type">
+						<RadioGroup v-model="formValidate.spec_type" @on-change="changeSpec">
+							<Radio :label="0" class="radio">单规格</Radio>
+							<Radio :label="1">多规格</Radio>
+						</RadioGroup>
+					</FormItem>
+					</Col>
+					<!-- 多规格添加-->
+					<Col span="24" v-if="formValidate.spec_type === 1" class="noForm">
+					<!-- <Col span="24" v-if="!$route.params.id"> -->
+					<Col span="24">
+					<FormItem label="选择规格:" prop="">
+						<div class="acea-row row-middle">
+							<Select v-model="formValidate.selectRule" style="width: 23%">
+								<Option v-for="(item, index) in ruleList" :value="item.rule_name" :key="index">{{ item.rule_name }}</Option>
+							</Select>
+							<Button type="primary" class="mr20" @click="confirm">确认</Button>
+							<Button @click="addRule">添加规格模板</Button>
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem v-if="attrs.length !== 0">
+						<draggable class="dragArea list-group" :list="attrs" group="peoples" handle=".move-icon"
+							:move="checkMove" @end="end">
+							<div v-for="(item, index) in attrs" :key="index" class="acea-row row-middle mb10">
+								<div class="move-icon">
+									<span class="iconfont icondrag2"></span>
+								</div>
+								<div style="width: 90%" :class="moveIndex === index ? 'borderStyle' : ''">
+									<div class="acea-row row-middle">
+										<span class="mr5">{{ item.value }}</span>
+										<Icon type="ios-close-circle" size="14" class="curs"
+											@click="handleRemoveRole(index)" />
+									</div>
+									<div class="rulesBox">
+										<draggable :list="item.detail" handle=".drag">
+											<Tag type="dot" closable color="primary" v-for="(j, indexn) in item.detail"
+												:key="indexn" :name="j" class="mr20 drag"
+												@on-close="handleRemove2(item.detail, indexn)">{{ j }}</Tag>
+										</draggable>
+										<Input search enter-button="添加" placeholder="请输入属性名称"
+											v-model="item.detail.attrsVal"
+											@on-search="createAttr(item.detail.attrsVal, index)" class="width-add" />
+									</div>
+								</div>
+							</div>
+						</draggable>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="createBnt">
+					<FormItem>
+						<Button type="primary" icon="md-add" @click="addBtn" class="mr15">添加新规格</Button>
+						<Button type="success" @click="generate(1)">立即生成</Button>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="showIput">
+					<Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
+					<FormItem label="规格:">
+						<Input placeholder="请输入规格" v-model="formDynamic.attrsName" />
+					</FormItem>
+					</Col>
+					<Col :xl="6" :lg="9" :md="10" :sm="24" :xs="24">
+					<FormItem label="规格值:">
+						<Input v-model="formDynamic.attrsVal" placeholder="请输入规格值" />
+					</FormItem>
+					</Col>
+					<Col :xl="6" :lg="5" :md="10" :sm="24" :xs="24">
+					<FormItem>
+						<Button type="primary" class="mr15" @click="createAttrName">确定</Button>
+						<Button @click="offAttrName">取消</Button>
+					</FormItem>
+					</Col>
+					</Col>
+					<!-- 多规格设置-->
+					<Col :xl="24" :lg="24" :md="24" :sm="24" :xs="24" v-if="
 			      manyFormValidate.length &&
 			      formValidate.header.length !== 0 &&
 			      attrs.length !== 0
-			    "
-            >
-              <!-- 批量设置-->
-              <Col span="24">
-                <FormItem label="批量设置:" class="labeltop">
-                  <Table :data="oneFormBatch" :columns="formValidate.product_type == 1?columnsCarMy:formValidate.product_type == 3?columnsFictitious:columns2" border>
-                    <template slot-scope="{ row, index }" slot="attr">
-                      <div @click="batchAttr" class="acea-row row-between-wrapper" style="cursor: pointer;">
-                        <div style="width: 41px;">{{oneFormBatch[0].attr}}</div>
-                        <span class="iconfont icondrop-down"></span>
-                      </div>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="pic">
-                      <div
-                          class="acea-row row-middle row-center-wrapper"
-                          @click="modalPicTap('dan', 'duopi', index)"
-                      >
-                        <div
-                            class="pictrue pictrueTab"
-                            v-if="oneFormBatch[0].pic"
-                        >
-                          <img v-lazy="oneFormBatch[0].pic" />
-                        </div>
-                        <div
-                            class="upLoad pictrueTab acea-row row-center-wrapper"
-                            v-else
-                        >
-                          <Icon type="ios-camera-outline" size="26" class="iosfont" />
-                        </div>
-                      </div>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="price">
-                      <InputNumber
-                          v-model="oneFormBatch[0].price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="settle_price">
-                      <InputNumber
-                          v-model="oneFormBatch[0].settle_price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-<!--                    <template slot-scope="{ row, index }" slot="cost">-->
-<!--                      <InputNumber-->
-<!--                          v-model="oneFormBatch[0].cost"-->
-<!--                          :min="0"-->
-<!--                          class="priceBox"-->
-<!--                      ></InputNumber>-->
-<!--                    </template>-->
-                    <template slot-scope="{ row, index }" slot="ot_price">
-                      <InputNumber
-                          v-model="oneFormBatch[0].ot_price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="stock">
-                      <InputNumber
-                          v-model="oneFormBatch[0].stock"
-                          :min="0"
-                          :disabled="formValidate.product_type == 1 || openErp"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="bar_code">
-                      <Input v-model="oneFormBatch[0].bar_code"></Input>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="code">
-                      <Input v-model="oneFormBatch[0].code"></Input>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="weight">
-                      <InputNumber
-                          v-model="oneFormBatch[0].weight"
-                          :step="0.1"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="volume">
-                      <InputNumber
-                          v-model="oneFormBatch[0].volume"
-                          :step="0.1"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="fictitious" v-if="formValidate.product_type == 1">
-                      <Button
-                          v-if="
+			    ">
+					<!-- 批量设置-->
+					<Col span="24">
+					<FormItem label="批量设置:" class="labeltop">
+						<Table :data="oneFormBatch"
+							:columns="formValidate.product_type == 1?columnsCarMy:formValidate.product_type == 3?columnsFictitious:columns2"
+							border>
+							<template slot-scope="{ row, index }" slot="attr">
+								<div @click="batchAttr" class="acea-row row-between-wrapper" style="cursor: pointer;">
+									<div style="width: 41px;">{{oneFormBatch[0].attr}}</div>
+									<span class="iconfont icondrop-down"></span>
+								</div>
+							</template>
+							<template slot-scope="{ row, index }" slot="pic">
+								<div class="acea-row row-middle row-center-wrapper"
+									@click="modalPicTap('dan', 'duopi', index)">
+									<div class="pictrue pictrueTab" v-if="oneFormBatch[0].pic">
+										<img v-lazy="oneFormBatch[0].pic" />
+									</div>
+									<div class="upLoad pictrueTab acea-row row-center-wrapper" v-else>
+										<Icon type="ios-camera-outline" size="26" class="iosfont" />
+									</div>
+								</div>
+							</template>
+							<template slot-scope="{ row, index }" slot="price">
+								<InputNumber v-model="oneFormBatch[0].price" :min="0" class="priceBox"></InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="settle_price">
+								<InputNumber v-model="oneFormBatch[0].settle_price" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<!--                    <template slot-scope="{ row, index }" slot="cost">-->
+							<!--                      <InputNumber-->
+							<!--                          v-model="oneFormBatch[0].cost"-->
+							<!--                          :min="0"-->
+							<!--                          class="priceBox"-->
+							<!--                      ></InputNumber>-->
+							<!--                    </template>-->
+							<template slot-scope="{ row, index }" slot="ot_price">
+								<InputNumber v-model="oneFormBatch[0].ot_price" :min="0" class="priceBox"></InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="stock">
+								<InputNumber v-model="oneFormBatch[0].stock" :min="0"
+									:disabled="formValidate.product_type == 1 || openErp" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="bar_code">
+								<Input v-model="oneFormBatch[0].bar_code"></Input>
+							</template>
+							<template slot-scope="{ row, index }" slot="code">
+								<Input v-model="oneFormBatch[0].code"></Input>
+							</template>
+							<template slot-scope="{ row, index }" slot="weight">
+								<InputNumber v-model="oneFormBatch[0].weight" :step="0.1" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="volume">
+								<InputNumber v-model="oneFormBatch[0].volume" :step="0.1" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="fictitious"
+								v-if="formValidate.product_type == 1">
+								<Button v-if="
 					        !row.virtual_list && !row.stock
-					      "
-                          @click="addVirtual(0, 'oneFormBatch')"
-                      >添加卡密</Button
-                      >
-                      <span
-                          v-else
-                          class="seeCatMy"
-                          @click="seeVirtual(oneFormBatch[0], 'oneFormBatch', 0)"
-                      >已设置</span
-                      >
-                    </template>
-                    <template slot-scope="{ row, index }" slot="action">
-                      <a @click="batchAdd">批量设置</a>
-                      <Divider type="vertical" />
-                      <a @click="batchDel">清空</a>
-                    </template>
-                  </Table>
-                </FormItem>
-              </Col>
-              <!-- 多规格表格-->
-              <Col span="24">
-                <FormItem label="商品属性:" class="labeltop">
-                  <Table
-                      :data="manyFormValidate"
-                      :columns="formValidate.header"
-                      border
-                  >
-                    <template slot-scope="{ row, index }" v-for="(item,i) in attrData.length" :slot="'value'+(i+1)">
-                      <div :class="manyFormValidate[index].select?'selectOn':''">{{manyFormValidate[index]['value'+(i+1)]}}</div>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="pic">
-                      <div
-                          class="acea-row row-middle row-center-wrapper"
-                          @click="modalPicTap('dan', 'duoTable', index)"
-                      >
-                        <div
-                            class="pictrue pictrueTab"
-                            v-if="manyFormValidate[index].pic"
-                        >
-                          <img v-lazy="manyFormValidate[index].pic" />
-                        </div>
-                        <div
-                            class="upLoad pictrueTab acea-row row-center-wrapper"
-                            v-else
-                        >
-                          <Icon
-                              type="ios-camera-outline"
-                              size="21"
-                          />
-                        </div>
-                      </div>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="price">
-                      <InputNumber
-                          v-model="manyFormValidate[index].price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="settle_price">
-                      <InputNumber
-                          v-model="manyFormValidate[index].settle_price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-<!--                    <template slot-scope="{ row, index }" slot="cost">-->
-<!--                      <InputNumber-->
-<!--                          v-model="manyFormValidate[index].cost"-->
-<!--                          :min="0"-->
-<!--                          class="priceBox"-->
-<!--                      ></InputNumber>-->
-<!--                    </template>-->
-                    <template slot-scope="{ row, index }" slot="ot_price">
-                      <InputNumber
-                          v-model="manyFormValidate[index].ot_price"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="stock">
-                      <InputNumber
-                          v-model="manyFormValidate[index].stock"
-                          :min="0"
-                          :precision="0"
-                          :disabled="formValidate.product_type == 1 || openErp"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="fictitious" v-if="formValidate.product_type == 1">
-                      <Button
-                          v-if="(!row.virtual_list || !row.virtual_list.length) && !row.stock"
-                          @click="addVirtual(index, 'manyFormValidate')"
-                      >添加卡密</Button
-                      >
-                      <span
-                          v-else
-                          class="seeCatMy"
-                          @click="seeVirtual(row, 'manyFormValidate', index)"
-                      >已设置</span>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="bar_code">
-                      <Input v-model="manyFormValidate[index].bar_code"></Input>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="code">
-                      <Input v-model="manyFormValidate[index].code"></Input>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="weight">
-                      <InputNumber
-                          v-model="manyFormValidate[index].weight"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="volume">
-                      <InputNumber
-                          v-model="manyFormValidate[index].volume"
-                          :min="0"
-                          class="priceBox"
-                      ></InputNumber>
-                    </template>
-                    <template slot-scope="{ row, index }" slot="action">
-                      <a @click="delAttrTable(index)">删除</a>
-                    </template>
-                  </Table>
-                </FormItem>
-              </Col>
-            </Col>
-          </Col>
-          <!-- 单规格表格-->
-          <div v-if="formValidate.spec_type === 0" style="width: 100%;">
-            <Col span="24">
-              <FormItem label="图片:" prop="image">
-                <div class="pictrueBox" @click="modalPicTap('dan', 'danTable', 0)">
-                  <div class="pictrue" v-if="oneFormValidate[0].pic">
-                    <img v-lazy="oneFormValidate[0].pic" />
-                  </div>
-                  <div class="upLoad acea-row row-center-wrapper" v-else>
-                    <Input
-                        v-model="oneFormValidate[0].pic"
-                        class="input-display"
-                    ></Input>
-                    <Icon type="ios-camera-outline" size="26" />
-                  </div>
-                </div>
-              </FormItem>
-            </Col>
-            <Col span="24" class="asterisk">
-              <div class="asteriskInfo">*</div>
-              <FormItem label="售价:">
-                <InputNumber
-                    v-model="oneFormValidate[0].price"
-                    :min="0"
-                    :max="99999999"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-            <Col span="24" class="asterisk">
-              <div class="asteriskInfo on">*</div>
-              <FormItem label="结算价:">
-                <InputNumber
-                    v-model="oneFormValidate[0].settle_price"
-                    :min="0"
-                    :max="99999999"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-<!--            <Col span="24" class="asterisk">-->
-<!--              <div class="asteriskInfo on">*</div>-->
-<!--              <FormItem label="成本价:">-->
-<!--                <InputNumber-->
-<!--                    v-model="oneFormValidate[0].cost"-->
-<!--                    :min="0"-->
-<!--                    :max="99999999"-->
-<!--                    v-width="'50%'"-->
-<!--                ></InputNumber>-->
-<!--              </FormItem>-->
-<!--            </Col>-->
-            <Col span="24">
-              <FormItem label="原价:">
-                <InputNumber
-                    v-model="oneFormValidate[0].ot_price"
-                    :min="0"
-                    :max="99999999"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-            <Col span="24" class="asterisk">
-              <div class="asteriskInfo">*</div>
-              <FormItem label="库存:">
-                <InputNumber
-                    v-model="oneFormValidate[0].stock"
-                    :min="0"
-                    :max="99999999"
-                    :disabled="formValidate.product_type == 1 || openErp"
-                    :precision="0"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-            <Col span="24">
-              <FormItem label="商品条形码:">
-                <Input
-                    v-model.trim="oneFormValidate[0].bar_code"
-                    v-width="'50%'"
-                    placeholder="请输入商品条形码"
-                ></Input>
-              </FormItem>
-            </Col>
-            <Col span="24">
-              <FormItem label="商品编号:">
-                <Input
-                    v-model.trim="oneFormValidate[0].code"
-                    v-width="'50%'"
-                    placeholder="请输入商品编码"
-                ></Input>
-              </FormItem>
-            </Col>
-            <Col span="24" v-if="formValidate.product_type == 0">
-              <FormItem label="重量(KG):">
-                <InputNumber
-                    v-model="oneFormValidate[0].weight"
-                    :min="0"
-                    :max="99999999"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-            <Col span="24" v-if="formValidate.product_type == 0">
-              <FormItem
-                  label="体积(m³):"
-              >
-                <InputNumber
-                    v-model="oneFormValidate[0].volume"
-                    :min="0"
-                    :max="99999999"
-                    v-width="'50%'"
-                ></InputNumber>
-              </FormItem>
-            </Col>
-            <Col span="24" v-if="formValidate.product_type == 1">
-              <FormItem
-                  label="卡密设置:"
-              >
-                <Button
-                    v-if="
+					      " @click="addVirtual(0, 'oneFormBatch')">添加卡密</Button>
+								<span v-else class="seeCatMy"
+									@click="seeVirtual(oneFormBatch[0], 'oneFormBatch', 0)">已设置</span>
+							</template>
+							<template slot-scope="{ row, index }" slot="action">
+								<a @click="batchAdd">批量设置</a>
+								<Divider type="vertical" />
+								<a @click="batchDel">清空</a>
+							</template>
+						</Table>
+					</FormItem>
+					</Col>
+					<!-- 多规格表格-->
+					<Col span="24">
+					<FormItem label="商品属性:" class="labeltop">
+						<Table :data="manyFormValidate" :columns="formValidate.header" border>
+							<template slot-scope="{ row, index }" v-for="(item,i) in attrData.length"
+								:slot="'value'+(i+1)">
+								<div :class="manyFormValidate[index].select?'selectOn':''">
+									{{manyFormValidate[index]['value'+(i+1)]}}</div>
+							</template>
+							<template slot-scope="{ row, index }" slot="pic">
+								<div class="acea-row row-middle row-center-wrapper"
+									@click="modalPicTap('dan', 'duoTable', index)">
+									<div class="pictrue pictrueTab" v-if="manyFormValidate[index].pic">
+										<img v-lazy="manyFormValidate[index].pic" />
+									</div>
+									<div class="upLoad pictrueTab acea-row row-center-wrapper" v-else>
+										<Icon type="ios-camera-outline" size="21" />
+									</div>
+								</div>
+							</template>
+							<template slot-scope="{ row, index }" slot="price">
+								<InputNumber v-model="manyFormValidate[index].price" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="settle_price">
+								<InputNumber v-model="manyFormValidate[index].settle_price" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<!--                    <template slot-scope="{ row, index }" slot="cost">-->
+							<!--                      <InputNumber-->
+							<!--                          v-model="manyFormValidate[index].cost"-->
+							<!--                          :min="0"-->
+							<!--                          class="priceBox"-->
+							<!--                      ></InputNumber>-->
+							<!--                    </template>-->
+							<template slot-scope="{ row, index }" slot="ot_price">
+								<InputNumber v-model="manyFormValidate[index].ot_price" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="stock">
+								<InputNumber v-model="manyFormValidate[index].stock" :min="0" :precision="0"
+									:disabled="formValidate.product_type == 1 || openErp" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="fictitious"
+								v-if="formValidate.product_type == 1">
+								<Button v-if="(!row.virtual_list || !row.virtual_list.length) && !row.stock"
+									@click="addVirtual(index, 'manyFormValidate')">添加卡密</Button>
+								<span v-else class="seeCatMy"
+									@click="seeVirtual(row, 'manyFormValidate', index)">已设置</span>
+							</template>
+							<template slot-scope="{ row, index }" slot="bar_code">
+								<Input v-model="manyFormValidate[index].bar_code"></Input>
+							</template>
+							<template slot-scope="{ row, index }" slot="code">
+								<Input v-model="manyFormValidate[index].code"></Input>
+							</template>
+							<template slot-scope="{ row, index }" slot="weight">
+								<InputNumber v-model="manyFormValidate[index].weight" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="volume">
+								<InputNumber v-model="manyFormValidate[index].volume" :min="0" class="priceBox">
+								</InputNumber>
+							</template>
+							<template slot-scope="{ row, index }" slot="action">
+								<a @click="delAttrTable(index)">删除</a>
+							</template>
+						</Table>
+					</FormItem>
+					</Col>
+					</Col>
+					</Col>
+					<!-- 单规格表格-->
+					<div v-if="formValidate.spec_type === 0" style="width: 100%;">
+						<Col span="24">
+						<FormItem label="图片:" prop="image">
+							<div class="pictrueBox" @click="modalPicTap('dan', 'danTable', 0)">
+								<div class="pictrue" v-if="oneFormValidate[0].pic">
+									<img v-lazy="oneFormValidate[0].pic" />
+								</div>
+								<div class="upLoad acea-row row-center-wrapper" v-else>
+									<Input v-model="oneFormValidate[0].pic" class="input-display"></Input>
+									<Icon type="ios-camera-outline" size="26" />
+								</div>
+							</div>
+						</FormItem>
+						</Col>
+						<Col span="24" class="asterisk">
+						<div class="asteriskInfo">*</div>
+						<FormItem label="售价:">
+							<InputNumber v-model="oneFormValidate[0].price" :min="0" :max="99999999" v-width="'50%'">
+							</InputNumber>
+						</FormItem>
+						</Col>
+						<Col span="24" class="asterisk">
+						<div class="asteriskInfo on">*</div>
+						<FormItem label="结算价:">
+							<InputNumber v-model="oneFormValidate[0].settle_price" :min="0" :max="99999999"
+								v-width="'50%'"></InputNumber>
+						</FormItem>
+						</Col>
+						<!--            <Col span="24" class="asterisk">-->
+						<!--              <div class="asteriskInfo on">*</div>-->
+						<!--              <FormItem label="成本价:">-->
+						<!--                <InputNumber-->
+						<!--                    v-model="oneFormValidate[0].cost"-->
+						<!--                    :min="0"-->
+						<!--                    :max="99999999"-->
+						<!--                    v-width="'50%'"-->
+						<!--                ></InputNumber>-->
+						<!--              </FormItem>-->
+						<!--            </Col>-->
+						<Col span="24">
+						<FormItem label="原价:">
+							<InputNumber v-model="oneFormValidate[0].ot_price" :min="0" :max="99999999" v-width="'50%'">
+							</InputNumber>
+						</FormItem>
+						</Col>
+						<Col span="24" class="asterisk">
+						<div class="asteriskInfo">*</div>
+						<FormItem label="库存:">
+							<InputNumber v-model="oneFormValidate[0].stock" :min="0" :max="99999999"
+								:disabled="formValidate.product_type == 1 || openErp" :precision="0" v-width="'50%'">
+							</InputNumber>
+						</FormItem>
+						</Col>
+						<Col span="24">
+						<FormItem label="商品条形码:">
+							<Input v-model.trim="oneFormValidate[0].bar_code" v-width="'50%'"
+								placeholder="请输入商品条形码"></Input>
+						</FormItem>
+						</Col>
+						<Col span="24">
+						<FormItem label="商品编号:">
+							<Input v-model.trim="oneFormValidate[0].code" v-width="'50%'" placeholder="请输入商品编码"></Input>
+						</FormItem>
+						</Col>
+						<Col span="24" v-if="formValidate.product_type == 0">
+						<FormItem label="重量(KG):">
+							<InputNumber v-model="oneFormValidate[0].weight" :min="0" :max="99999999" v-width="'50%'">
+							</InputNumber>
+						</FormItem>
+						</Col>
+						<Col span="24" v-if="formValidate.product_type == 0">
+						<FormItem label="体积(m³):">
+							<InputNumber v-model="oneFormValidate[0].volume" :min="0" :max="99999999" v-width="'50%'">
+							</InputNumber>
+						</FormItem>
+						</Col>
+						<Col span="24" v-if="formValidate.product_type == 1">
+						<FormItem label="卡密设置:">
+							<Button v-if="
 				        !oneFormValidate[0].virtual_list.length
 						&& !oneFormValidate[0].stock
-				      "
-                    @click="addVirtual(0, 'oneFormValidate')"
-                >添加卡密</Button
-                >
-                <span
-                    v-else
-                    class="seeCatMy"
-                    @click="seeVirtual(oneFormValidate[0], 'oneFormValidate', 0)"
-                >已设置</span
-                >
-              </FormItem>
-            </Col>
-          </div>
-        </Row>
-        <!-- 商品详情 -->
-        <Row v-show="currentTab === '3'" class="mb10">
-          <Col span="16">
-            <wangeditor
-                style="width: 100%"
-                :content="contents"
-                @editorContent="getEditorContent"
-            ></wangeditor>
-          </Col>
-          <Col span="6" style="width: 33%">
-            <div class="ifam">
-              <div class="content" v-html="content"></div>
-            </div>
-          </Col>
-        </Row>
-        <!-- 其他设置-->
-        <Row v-show="currentTab === '4'">
-          <Col v-bind="grid3">
-            <FormItem label="配送方式:" prop="" required>
-              <CheckboxGroup v-model="formValidate.delivery_type">
-                <Checkbox label="1">快递</Checkbox>
-                <!-- <Checkbox label="3">门店配送</Checkbox>
+				      " @click="addVirtual(0, 'oneFormValidate')">添加卡密</Button>
+							<span v-else class="seeCatMy"
+								@click="seeVirtual(oneFormValidate[0], 'oneFormValidate', 0)">已设置</span>
+						</FormItem>
+						</Col>
+					</div>
+				</Row>
+				<!-- 商品详情 -->
+				<Row v-show="currentTab === '3'" class="mb10">
+					<Col span="16">
+					<wangeditor style="width: 100%" :content="contents" @editorContent="getEditorContent"></wangeditor>
+					</Col>
+					<Col span="6" style="width: 33%">
+					<div class="ifam">
+						<div class="content" v-html="content"></div>
+					</div>
+					</Col>
+				</Row>
+				<!-- 其他设置-->
+				<Row v-show="currentTab === '4'">
+					<Col v-bind="grid3">
+					<FormItem label="配送方式:" prop="" required>
+						<CheckboxGroup v-model="formValidate.delivery_type">
+							<Checkbox label="1">快递</Checkbox>
+							<!-- <Checkbox label="3">门店配送</Checkbox>
                 <Checkbox label="2">到店自提</Checkbox> -->
-              </CheckboxGroup>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="运费设置:">
-              <RadioGroup v-model="formValidate.freight">
-                <Radio :label="1">包邮</Radio>
-                <Radio :label="2">固定邮费</Radio>
-                <Radio :label="3">运费模板</Radio>
-              </RadioGroup>
-            </FormItem>
-          </Col>
-          <Col
-              span="24"
-              v-if="formValidate.freight == 2"
-          >
-            <FormItem
-                label=""
-                prop="freight"
-            >
-              <div class="acea-row row-middle">
-                <InputNumber
-                    :min="0"
-                    v-model="formValidate.postage"
-                    placeholder="请输入金额"
-                    class="perW20 maxW"
-                />
-                <span class="ml10">元</span>
-              </div>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.freight == 3">
-            <FormItem label="" prop="">
-              <div class="acea-row">
-                <Select
-                    v-model="formValidate.temp_id"
-                    clearable
-                    class="perW20 maxW"
-                >
-                  <Option
-                      v-for="(item, index) in templateList"
-                      :value="item.id"
-                      :key="index"
-                  >{{ item.name }}</Option
-                  >
-                </Select>
-                <Button @click="editTemp" class="ml15" v-if='formValidate.temp_id'>查看运费模板</Button>
-				<Button @click="addTemp" class="ml15" v-else>添加运费模板</Button>
-              </div>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="已售数量:">
-              <InputNumber
-                  v-width="'50%'"
-                  :min="0"
-                  :max="999999"
-                  v-model="formValidate.ficti"
-                  placeholder="请输入已售数量"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="是否限购:">
-              <i-switch v-model="formValidate.is_limit" :true-value="1" :false-value="0" size="large" @on-change="limitTap">
-                <span slot="open">开启</span>
-                <span slot="close">关闭</span>
-              </i-switch>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.is_limit">
-            <FormItem label="限购类型:">
-              <RadioGroup v-model="formValidate.limit_type">
-                <Radio :label="1">单次限购</Radio>
-                <Radio :label="2">长期限购</Radio>
-              </RadioGroup>
-              <div class="tips">
-                单次限购是限制每次下单最多购买的数量,长期限购是限制一个用户总共可以购买的数量
-              </div>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.is_limit">
-            <FormItem label="限购数量:">
-              <InputNumber
-                  :min="1"
-                  v-model="formValidate.limit_num"
-                  placeholder="请输入限购数量"
-                  class="perW20 maxW"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="排序:">
-              <InputNumber
-                  :min="0"
-                  :max="999999"
-                  v-width="'50%'"
-                  v-model="formValidate.sort"
-                  placeholder="请输入排序"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品关键字:" prop="">
-              <Input
-                  v-model="formValidate.keyword"
-                  placeholder="请输入商品关键字"
-                  v-width="'50%'"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品简介:" prop="">
-              <Input
-                  v-model="formValidate.store_info"
-                  type="textarea"
-                  :rows="3"
-                  placeholder="请输入商品简介"
-                  v-width="'50%'"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品口令:">
-              <Input
-                  v-model="formValidate.command_word"
-                  type="textarea"
-                  :rows="3"
-                  placeholder="请输入商品口令"
-                  v-width="'50%'"
-              />
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品推荐图:">
-              <div
-                  class="pictrueBox"
-                  @click="modalPicTap('dan', 'recommend_image')"
-              >
-                <div class="pictrue" v-if="formValidate.recommend_image">
-                  <img v-lazy="formValidate.recommend_image" />
-                  <Input
-                      v-model="formValidate.recommend_image"
-                      class="input-display"
-                  ></Input>
-                </div>
-                <div class="upLoad acea-row row-center-wrapper" v-else>
-                  <Input
-                      v-model="formValidate.recommend_image"
-                      class="input-display"
-                  ></Input>
-                  <Icon type="ios-camera-outline" size="26" />
-                </div>
-              </div>
-              <div class="tips">(建议图片比例5:2)</div>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="服务保障:">
-              <CheckboxGroup
-                  v-model="formValidate.ensure_id"
-                  class="checkAlls"
-              >
-                <Checkbox :label="item.id" v-for="(item,index) in ensureData">{{item.name}}</Checkbox>
-              </CheckboxGroup>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="商品参数:" prop="">
-              <Select
-                  v-model="formValidate.specs_id"
-                  clearable
-                  filterable
-                  v-width="'50%'"
-                  placeholder="请输入商品参数"
-                  @on-change="specsInfo"
-              >
-                <Option
-                    v-for="(item, index) in specsData"
-                    :value="item.id"
-                    :key="index"
-                >{{ item.name }}</Option
-                >
-              </Select>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="formValidate.specs_id">
-            <FormItem label="" props="">
-              <Table border :columns="specsColumns" :data="specsList" ref="table" class="specsList" width="700">
-                <template slot-scope="{ row, index }" slot="action">
-                  <a @click="delSpecs(index)" v-if="index>0">删除</a>
-                </template>
-              </Table>
-              <Button class="mt20" @click="addSpecs">添加参数</Button>
-            </FormItem>
-          </Col>
-          <Col span="24">
-            <FormItem label="自定义留言:">
-              <i-switch
-                  v-model="customBtn"
-                  @on-change="customMessBtn"
-                  size="large"
-              >
-                <span slot="open">开启</span>
-                <span slot="close">关闭</span>
-              </i-switch>
-              <div class="mt10" v-if="customBtn">
-                <Select
-                    v-model="formValidate.system_form_id"
-                    filterable
-                    v-width="'50%'"
-                    placeholder="请选择"
-                    @on-change="changeForm"
-                >
-                  <Option
-                      v-for="(item, index) in formList"
-                      :value="item.id"
-                      :key="item.id"
-                  >{{ item.name }}</Option
-                  >
-                </Select>
-              </div>
-            </FormItem>
-          </Col>
-          <Col span="24" v-if="customBtn && formValidate.system_form_id">
-            <FormItem label="" props="">
-              <Table border :columns="formColumns" :data="formTypeList" ref="table" class="specsList on">
-                <template slot-scope="{ row }" slot="require">
-                  <span>{{row.require?'必填':'不必填'}}</span>
-                </template>
-              </Table>
-            </FormItem>
-          </Col>
-        </Row>
-        <Spin size="large" fix v-if="spinShow"></Spin>
-      </Form>
-      <Modal
-          v-model="modalPic"
-          width="960px"
-          scrollable
-          footer-hide
-          closable
-          title="上传商品图"
-          :mask-closable="false"
-          :z-index="1"
-      >
-        <uploadPictures
-            :isChoice="isChoice"
-            @getPic="getPic"
-            @getPicD="getPicD"
-            :gridBtn="gridBtn"
-            :gridPic="gridPic"
-            v-if="modalPic"
-        ></uploadPictures>
-      </Modal>
-    </Card>
-    <Card :bordered="false" dis-hover class="fixed-card" :style="{left: `${!menuCollapse?'200px':isMobile?'0':'80px'}`}">
-      <Form>
-        <FormItem>
-          <Button v-if="currentTab !== '1'" @click="upTab">上一步</Button>
-          <Button
-              type="primary"
-              class="submission"
-              v-if="currentTab !== '4'"
-              @click="downTab('formValidate')"
-          >下一步</Button
-          >
-          <Button
-              type="primary"
-              :disabled="openSubimit"
-              class="submission"
-              @click="handleSubmit('formValidate')"
-              v-if="$route.params.id || currentTab === '4'"
-          >保存</Button
-          >
-        </FormItem>
-      </Form>
-    </Card>
-    <freightTemplate
-        :template="template"
-        v-on:changeTemplate="changeTemplate"
-        ref="templates"
-    ></freightTemplate>
-    <add-attr ref="addattr" @getList="userSearchs"></add-attr>
-    <!--<coupon-list-->
-    <!--ref="couponTemplates"-->
-    <!--@nameId="nameId"-->
-    <!--:couponids="formValidate.coupon_ids"-->
-    <!--:updateIds="updateIds"-->
-    <!--:updateName="updateName"-->
-    <!--&gt;</coupon-list>-->
-    <!-- 生成淘宝京东表单-->
-    <!--<Modal v-model="modals" @on-cancel="cancel" class="Box" class-name="vertical-center-modal" scrollable  footer-hide closable title="复制淘宝、天猫、京东、苏宁、1688" :mask-closable="false"  width="800" height="500">-->
-    <!--<tao-bao ref="taobaos" v-if="modals" @on-close="onClose"></tao-bao>-->
-    <!--</Modal>-->
-    <!-- 商品列表 -->
-    <Modal v-model="goodsModals" title="商品列表" footerHide  scrollable width="900" @on-cancel="goodCancel">
-      <goods-list v-if="goodsModals" ref="goodslist" @getProductId="getProductId" :ischeckbox="true"></goods-list>
-    </Modal>
-    <!-- 用户标签 -->
-    <!--<Modal-->
-    <!--v-model="labelShow"-->
-    <!--scrollable-->
-    <!--title="请选择用户标签"-->
-    <!--:closable="false"-->
-    <!--width="320"-->
-    <!--:footer-hide="true"-->
-    <!--:mask-closable="false"-->
-    <!--&gt;-->
-    <!--<userLabel ref="userLabel" @activeData="activeData" @close="labelClose"></userLabel>-->
-    <!--</Modal>-->
-    <!-- 商品标签 -->
-    <Modal
-        v-model="storeLabelShow"
-        scrollable
-        title="选择商品标签"
-        :closable="true"
-        width="540"
-        :footer-hide="true"
-        :mask-closable="false"
-    >
-      <labelList ref="storeLabel" @activeData="activeStoreData" @close="storeLabelClose"></labelList>
-    </Modal>
-    <menus-from :formValidate="formBrand" :fromName='1' ref="menusFrom"></menus-from>
-    <Modal v-model="attrShow"
-           scrollable
-           title="请选择商品规格"
-           :closable="false"
-           width="320"
-           :footer-hide="true"
-           :mask-closable="false">
-      <attr-list :attrs="attrsList" @activeData="activeAttr" @close="labelAttr" @subAttrs="subAttrs" v-if="attrShow"></attr-list>
-    </Modal>
-    <!--<Modal v-model="carMyShow"-->
-    <!--scrollable-->
-    <!--title="添加卡密"-->
-    <!--closable-->
-    <!--width="700"-->
-    <!--:footer-hide="true"-->
-    <!--:mask-closable="false">-->
-    <!--<add-carMy ref="addCarMy" :virtualList="virtualList" @changeVirtual="changeVirtual" @fixdBtn="fixdBtn" @closeCarMy="closeCarMy"></add-carMy>-->
-    <!--</Modal>-->
-  </div>
+						</CheckboxGroup>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="运费设置:">
+						<RadioGroup v-model="formValidate.freight">
+							<Radio :label="1">包邮</Radio>
+							<Radio :label="2">固定邮费</Radio>
+							<Radio :label="3">运费模板</Radio>
+						</RadioGroup>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.freight == 2">
+					<FormItem label="" prop="freight">
+						<div class="acea-row row-middle">
+							<InputNumber :min="0" v-model="formValidate.postage" placeholder="请输入金额"
+								class="perW20 maxW" />
+							<span class="ml10">元</span>
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.freight == 3">
+					<FormItem label="" prop="">
+						<div class="acea-row">
+							<Select v-model="formValidate.temp_id" clearable class="perW20 maxW">
+								<Option v-for="(item, index) in templateList" :value="item.id" :key="index">{{ item.name }}</Option>
+							</Select>
+							<Button @click="editTemp" class="ml15" v-if='formValidate.temp_id'>查看运费模板</Button>
+							<Button @click="addTemp" class="ml15" v-else>添加运费模板</Button>
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="已售数量:">
+						<InputNumber v-width="'50%'" :min="0" :max="999999" v-model="formValidate.ficti"
+							placeholder="请输入已售数量" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="是否限购:">
+						<i-switch v-model="formValidate.is_limit" :true-value="1" :false-value="0" size="large"
+							@on-change="limitTap">
+							<span slot="open">开启</span>
+							<span slot="close">关闭</span>
+						</i-switch>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.is_limit">
+					<FormItem label="限购类型:">
+						<RadioGroup v-model="formValidate.limit_type">
+							<Radio :label="1">单次限购</Radio>
+							<Radio :label="2">长期限购</Radio>
+						</RadioGroup>
+						<div class="tips">
+							单次限购是限制每次下单最多购买的数量,长期限购是限制一个用户总共可以购买的数量
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.is_limit">
+					<FormItem label="限购数量:">
+						<InputNumber :min="1" v-model="formValidate.limit_num" placeholder="请输入限购数量"
+							class="perW20 maxW" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="排序:">
+						<InputNumber :min="0" :max="999999" v-width="'50%'" v-model="formValidate.sort"
+							placeholder="请输入排序" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品关键字:" prop="">
+						<Input v-model="formValidate.keyword" placeholder="请输入商品关键字" v-width="'50%'" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品简介:" prop="">
+						<Input v-model="formValidate.store_info" type="textarea" :rows="3" placeholder="请输入商品简介"
+							v-width="'50%'" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品口令:">
+						<Input v-model="formValidate.command_word" type="textarea" :rows="3" placeholder="请输入商品口令"
+							v-width="'50%'" />
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品推荐图:">
+						<div class="pictrueBox" @click="modalPicTap('dan', 'recommend_image')">
+							<div class="pictrue" v-if="formValidate.recommend_image">
+								<img v-lazy="formValidate.recommend_image" />
+								<Input v-model="formValidate.recommend_image" class="input-display"></Input>
+							</div>
+							<div class="upLoad acea-row row-center-wrapper" v-else>
+								<Input v-model="formValidate.recommend_image" class="input-display"></Input>
+								<Icon type="ios-camera-outline" size="26" />
+							</div>
+						</div>
+						<div class="tips">(建议图片比例5:2)</div>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="服务保障:">
+						<CheckboxGroup v-model="formValidate.ensure_id" class="checkAlls">
+							<Checkbox :label="item.id" v-for="(item,index) in ensureData">{{item.name}}</Checkbox>
+						</CheckboxGroup>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="商品参数:" prop="">
+						<Select v-model="formValidate.specs_id" clearable filterable v-width="'50%'"
+							placeholder="请输入商品参数" @on-change="specsInfo">
+							<Option v-for="(item, index) in specsData" :value="item.id" :key="index">{{ item.name }}</Option>
+						</Select>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="formValidate.specs_id">
+					<FormItem label="" props="">
+						<Table border :columns="specsColumns" :data="specsList" ref="table" class="specsList"
+							width="700">
+							<template slot-scope="{ row, index }" slot="action">
+								<a @click="delSpecs(index)" v-if="index>0">删除</a>
+							</template>
+						</Table>
+						<Button class="mt20" @click="addSpecs">添加参数</Button>
+					</FormItem>
+					</Col>
+					<Col span="24">
+					<FormItem label="自定义留言:">
+						<i-switch v-model="customBtn" @on-change="customMessBtn" size="large">
+							<span slot="open">开启</span>
+							<span slot="close">关闭</span>
+						</i-switch>
+						<div class="mt10" v-if="customBtn">
+							<Select v-model="formValidate.system_form_id" filterable v-width="'50%'" placeholder="请选择"
+								@on-change="changeForm">
+								<Option v-for="(item, index) in formList" :value="item.id" :key="item.id">{{ item.name }}</Option>
+							</Select>
+						</div>
+					</FormItem>
+					</Col>
+					<Col span="24" v-if="customBtn && formValidate.system_form_id">
+					<FormItem label="" props="">
+						<Table border :columns="formColumns" :data="formTypeList" ref="table" class="specsList on">
+							<template slot-scope="{ row }" slot="require">
+								<span>{{row.require?'必填':'不必填'}}</span>
+							</template>
+						</Table>
+					</FormItem>
+					</Col>
+				</Row>
+				<Spin size="large" fix v-if="spinShow"></Spin>
+			</Form>
+			<Modal v-model="modalPic" width="960px" scrollable footer-hide closable title="上传商品图" :mask-closable="false"
+				:z-index="1">
+				<uploadPictures :isChoice="isChoice" @getPic="getPic" @getPicD="getPicD" :gridBtn="gridBtn"
+					:gridPic="gridPic" v-if="modalPic"></uploadPictures>
+			</Modal>
+		</Card>
+		<Card :bordered="false" dis-hover class="fixed-card"
+			:style="{left: `${!menuCollapse?'200px':isMobile?'0':'80px'}`}">
+			<Form>
+				<FormItem>
+					<Button v-if="currentTab !== '1'" @click="upTab">上一步</Button>
+					<Button type="primary" class="submission" v-if="currentTab !== '4'"
+						@click="downTab('formValidate')">下一步</Button>
+					<Button type="primary" :disabled="openSubimit" class="submission"
+						@click="handleSubmit('formValidate')" v-if="$route.params.id || currentTab === '4'">保存</Button>
+				</FormItem>
+			</Form>
+		</Card>
+		<freightTemplate :template="template" v-on:changeTemplate="changeTemplate" ref="templates"></freightTemplate>
+		<add-attr ref="addattr" @getList="userSearchs"></add-attr>
+		<!--<coupon-list-->
+		<!--ref="couponTemplates"-->
+		<!--@nameId="nameId"-->
+		<!--:couponids="formValidate.coupon_ids"-->
+		<!--:updateIds="updateIds"-->
+		<!--:updateName="updateName"-->
+		<!--&gt;</coupon-list>-->
+		<!-- 生成淘宝京东表单-->
+		<!--<Modal v-model="modals" @on-cancel="cancel" class="Box" class-name="vertical-center-modal" scrollable  footer-hide closable title="复制淘宝、天猫、京东、苏宁、1688" :mask-closable="false"  width="800" height="500">-->
+		<!--<tao-bao ref="taobaos" v-if="modals" @on-close="onClose"></tao-bao>-->
+		<!--</Modal>-->
+		<!-- 商品列表 -->
+		<Modal v-model="goodsModals" title="商品列表" footerHide scrollable width="900" @on-cancel="goodCancel">
+			<goods-list v-if="goodsModals" ref="goodslist" @getProductId="getProductId" :ischeckbox="true"></goods-list>
+		</Modal>
+		<!-- 用户标签 -->
+		<!--<Modal-->
+		<!--v-model="labelShow"-->
+		<!--scrollable-->
+		<!--title="请选择用户标签"-->
+		<!--:closable="false"-->
+		<!--width="320"-->
+		<!--:footer-hide="true"-->
+		<!--:mask-closable="false"-->
+		<!--&gt;-->
+		<!--<userLabel ref="userLabel" @activeData="activeData" @close="labelClose"></userLabel>-->
+		<!--</Modal>-->
+		<!-- 商品标签 -->
+		<Modal v-model="storeLabelShow" scrollable title="选择商品标签" :closable="true" width="540" :footer-hide="true"
+			:mask-closable="false">
+			<labelList ref="storeLabel" @activeData="activeStoreData" @close="storeLabelClose"></labelList>
+		</Modal>
+		<menus-from :formValidate="formBrand" :fromName='1' ref="menusFrom"></menus-from>
+		<Modal v-model="attrShow" scrollable title="请选择商品规格" :closable="false" width="320" :footer-hide="true"
+			:mask-closable="false">
+			<attr-list :attrs="attrsList" @activeData="activeAttr" @close="labelAttr" @subAttrs="subAttrs"
+				v-if="attrShow"></attr-list>
+		</Modal>
+		<!--<Modal v-model="carMyShow"-->
+		<!--scrollable-->
+		<!--title="添加卡密"-->
+		<!--closable-->
+		<!--width="700"-->
+		<!--:footer-hide="true"-->
+		<!--:mask-closable="false">-->
+		<!--<add-carMy ref="addCarMy" :virtualList="virtualList" @changeVirtual="changeVirtual" @fixdBtn="fixdBtn" @closeCarMy="closeCarMy"></add-carMy>-->
+		<!--</Modal>-->
+	</div>
 </template>
 
 <script>
-// import COS from 'cos-js-sdk-v5'
-import { mapState,mapMutations } from "vuex";
-import Setting from "@/setting";
-import util from "@/libs/util";
-import vuedraggable from "vuedraggable";
-import uploadPictures from "@/components/uploadPictures";
-import freightTemplate from "@/components/freightTemplate";
-import wangeditor from "@/components/wangEditor/index.vue";
-
-import menusFrom from "../components/menusFrom";
-// import userLabel from "@/components/labelList";
-import labelList from "@/components/labelList";
-import couponList from "@/components/couponList";
-import goodsList from '@/components/goodsList/index';
-import addAttr from "../components/addAttr";
-import attrList from "../components/attrList";
-// import addCarMy from "../components/addCarMy";
-// import taoBao from './taoBao'
-import {
-  productInfoApi,
-  cascaderList,
-  productAddApi,
-  generateAttrApi,
-  productGetRuleApi,
-  productGetTemplateApi,
-  productGetTempKeysApi,
-  checkActivityApi,
-  productCache,
-  cacheDelete,
-  brandList,
-  productCreateApi,
-  productAllUnit,
-  productUnitCreate,
-  uploadType,
-  productAllEnsure,
-  productLabelAdd,
-  productAllSpecs,
-  allSystemForm,
-  systemFormInfo
-} from "@/api/product";
-import { erpConfig } from "@/api/erp";
-import { uploadByPieces } from "@/utils/upload"; //引入uploadByPieces方法
-export default {
-  name: "product_productAdd",
-  components: {
-    uploadPictures,
-    freightTemplate,
-    goodsList,
-    addAttr,
-    couponList,
-    // taoBao,
-    // userLabel,
-    menusFrom,
-    attrList,
-    // addCarMy,
-    labelList,
-    wangeditor,
-    draggable: vuedraggable,
-  },
-  data() {
-    return {
-      formTypeList: [],
-      formColumns: [
-        {
-          title: '表单标题',
-          key: 'title',
-          // align:'center',
-          minWidth: 100
-        },
-        {
-          title: '表单类型',
-          key: 'name',
-          // align:'center',
-          minWidth: 100
-        },
-        {
-          title: '是否必填',
-          slot: 'require',
-          // align:'center',
-          minWidth: 100
-        }
-      ],
-      roterPre: Setting.roterPre,
-      specsList:[],
-      specsColumns:[
-        {
-          title: '参数名称',
-          key: 'name',
-          align:'center',
-          width: 150,
-          render: (h, params) => {
-            return h("div", [
-              h("Input", {
-                props: {
-                  value: params.row.name,
-                  placeholder:'请输入参数名称'
-                },
-                on: {
-                  "on-change": (e) => {
-                    params.row.name = e.target.value;
-                    this.specsList[params.index].name = e.target.value;
-                  },
-                },
-              }),
-            ]);
-          }
-        },
-        {
-          title: '参数值',
-          key: 'value',
-          align:'center',
-          width: 300,
-          render: (h, params) => {
-            return h("div", [
-              h("Input", {
-                props: {
-                  value: params.row.value,
-                  placeholder:'请输入参数值'
-                },
-                on: {
-                  "on-change": (e) => {
-                    params.row.value = e.target.value;
-                    this.specsList[params.index].value = e.target.value;
-                  },
-                },
-              }),
-            ]);
-          }
-        },
-        {
-          title: '排序',
-          key: 'sort',
-          align:'center',
-          width: 100,
-          render: (h, params) => {
-            return h("div", [
-              h("InputNumber", {
-                props: {
-                  value: parseInt(params.row.sort) || 0,
-                  placeholder:'排序',
-                  precision:0
-                },
-                on: {
-                  "on-change": (e) => {
-                    params.row.sort = e;
-                    this.specsList[params.index].sort = e;
-                  },
-                },
-              }),
-            ]);
-          }
-        },
-        {
-          title: '操作',
-          slot: 'action',
-          align:'center',
-          minWidth: 120
-        }
-      ],
-      //自定义留言下拉选择
-      customList: [
-        {
-          value: "text",
-          label: "文本框",
-        },
-        {
-          value: "number",
-          label: "数字",
-        },
-        {
-          value: "email",
-          label: "邮件",
-        },
-        {
-          value: "data",
-          label: "日期",
-        },
-        {
-          value: "time",
-          label: "时间",
-        },
-        {
-          value: "id",
-          label: "身份证",
-        },
-        {
-          value: "phone",
-          label: "手机号",
-        },
-        {
-          value: "img",
-          label: "图片",
-        },
-      ],
-      headTab: [
-        { title: "基础信息", name: "1" },
-        { title: "规格库存", name: "2" },
-        { title: "商品详情", name: "3" },
-        { title: "其他设置", name: "4" },
-      ],
-      productType: [
-        { name: "普通商品", title: "物流发货", id: 0 },
-        { name: "卡密/网盘", title: "自动发货", id: 1 },
-        { name: "虚拟商品", title: "虚拟发货", id: 3 },
-      ],
-      virtualList:[],
-      carMyShow: false,//是否开启卡密弹窗
-      // recommend: [], //商品推荐
-      customBtn: false, //自定义留言开关
-      attrShow:false,
-      content: "",
-      contents: "",
-      seletVideo: 0,
-      fileUrl: Setting.apiBaseURL + "/file/upload",
-      fileUrl2: Setting.apiBaseURL + "/file/video_upload",
-      upload_type: "", //视频上传类型 1 本地上传 2 3 4 OSS上传
-      uploadData: {}, // 上传参数
-      header: {},
-      // dataLabel:[],
-      storeDataLabel:[],
-      labelShow:false,
-      storeLabelShow:false,
-      props: { emitPath: false, multiple: true, checkStrictly: true },
-      type: 0,
-      goodsModals: false,
-      off_show: 0,
-      modals: false,
-      spinShow: false,
-      openSubimit: false,
-      grid2: {
-        xl: 10,
-        lg: 12,
-        md: 12,
-        sm: 24,
-        xs: 24,
-      },
-      grid3: {
-        xl: 18,
-        lg: 18,
-        md: 20,
-        sm: 24,
-        xs: 24,
-      },
-      // 批量设置表格data
-      oneFormBatch: [
-        {
-          attr:"全部",
-          pic: "",
-          price: 0,
-          settle_price: 0,
-          cost: 0,
-          ot_price: 0,
-          stock: 0,
-          bar_code: "",
-          code: "",
-          weight: 0,
-          volume: 0,
-        },
-      ],
-      // 规格数据
-      formDynamic: {
-        attrsName: "",
-        attrsVal: "",
-      },
-      formDynamicNameData: [],
-      isBtn: false,
-      columnsCarMy:[],
-      columns2: [
-        {
-          title: "商品规格",
-          slot: "attr",
-          align: "center",
-          minWidth: 80,
-        },
-        {
-          title: "图片",
-          slot: "pic",
-          align: "center",
-          minWidth: 80,
-        },
-        {
-          title: "售价",
-          slot: "price",
-          align: "center",
-          minWidth: 95,
-        },
-        {
-          title: "结算价",
-          slot: "settle_price",
-          align: "center",
-          minWidth: 95,
-        },
-        // {
-        //   title: "成本价",
-        //   slot: "cost",
-        //   align: "center",
-        //   minWidth: 95,
-        // },
-        {
-          title: "原价",
-          slot: "ot_price",
-          align: "center",
-          minWidth: 95,
-        },
-        {
-          title: "库存",
-          slot: "stock",
-          align: "center",
-          minWidth: 95,
-        },
-        {
-          title: "商品条形码",
-          slot: "bar_code",
-          align: "center",
-          minWidth: 120,
-        },
-        {
-          title: "商品编号",
-          slot: "code",
-          align: "center",
-          minWidth: 120,
-        },
-        {
-          title: "重量(KG)",
-          slot: "weight",
-          align: "center",
-          minWidth: 95,
-        },
-        {
-          title: "体积(m³)",
-          slot: "volume",
-          align: "center",
-          minWidth: 95,
-        },
-        {
-          title: "操作",
-          slot: "action",
-          // fixed: "right",
-          align: "center",
-          minWidth: 140,
-        },
-      ],
-      columns: [],
-      columnsInstall: [],
-      columnsInstal2: [],
-      gridPic: {
-        xl: 6,
-        lg: 8,
-        md: 12,
-        sm: 12,
-        xs: 12,
-      },
-      gridBtn: {
-        xl: 4,
-        lg: 8,
-        md: 8,
-        sm: 8,
-        xs: 8,
-      },
-      formValidate: {
-        supplier_id:0,//供应商
-        // is_presale_product: 0, //预售商品开关
-        is_limit:0,//是否限购开关
-        limit_type:1,//1单次限购,2长期限购
-        limit_num:1,//限购数量
-        // is_vip_product: 0, //付费会员专属开关
-        // is_support_refund:0,
-        disk_info: "", //卡密简介
-        // presale_day: 1, //预售发货时间-结束
-        // presale_time:[],
-        auto_on_time:'',
-        video_open: false, //视频按钮是否显示
-        store_name: "",
-        freight: 1, //运费设置
-        postage: 0, //设置运费金额
-        custom_form: [], //自定义留言
-        system_form_id: 0,//自定义表单id
-        cate_id: [],
-        // label_id: [],
-        ensure_id:[],
-        keyword: "",
-        unit_name: "",
-        specs_id:0,
-        store_info: "",
-        bar_code:"",
-        code:"",
-        image: "",
-        recommend_image: "",
-        slider_image: [],
-        description: "",
-        ficti: 0,
-        sort: 0,
-        is_show: 1,
-        is_hot: 0,
-        is_benefit: 0,
-        is_best: 0,
-        is_new: 0,
-        is_good: 0,
-        is_postage: 0,
-        // is_sub: [],
-        id: 0,
-        spec_type: 0,
-        video_link: "",
-        temp_id: "",
-        attrs: [],
-        items: [
-          {
-            pic: "",
-            price: 0,
-            cost: 0,
-            ot_price: 0,
-            stock: 0,
-            bar_code: "",
-            code: "",
-          },
-        ],
-        // activity: ["默认", "秒杀", "砍价", "拼团"],
-        // couponName: [],
-        header: [],
-        selectRule: "",
-        coupon_ids: [],
-        command_word: "",
-        delivery_type: ["1"],
-        specs:[],
-        recommend_list: [],
-        brand_id: [],
-        product_type:0
-      },
-      ruleList: [],
-      templateList: [],
-      createBnt: false,
-      showIput: false,
-      manyFormValidate: [],
-      // 单规格表格data
-      oneFormValidate: [
-        {
-          pic: "",
-          price: 0,
-          settle_price: 0,
-          cost: 0,
-          ot_price: 0,
-          stock: 0,
-          bar_code: "",
-          code: "",
-          weight: 0,
-          volume: 0,
-          brokerage: 0,
-          brokerage_two: 0,
-          vip_price: 0,
-          virtual_list: []
-        },
-      ],
-      images: [],
-      imagesTable: "",
-      currentTab: "1",
-      isChoice: "",
-      grid: {
-        xl: 8,
-        lg: 8,
-        md: 12,
-        sm: 24,
-        xs: 24,
-      },
-      loading: false,
-      modalPic: false,
-      template: false,
-      uploadList: [],
-      treeSelect: [],
-      labelSelect: [],
-      ensureData:[],
-      specsData:[],
-      picTit: "",
-      tableIndex: 0,
-      ruleValidate: {
-        store_name: [
-          { required: true, message: "请输入商品名称", trigger: "blur" },
-        ],
-        cate_id: [
-          {
-            required: true,
-            message: "请选择商品分类",
-            trigger: "change",
-            type: "array"
-          },
-        ],
-        keyword: [
-          { required: true, message: "请输入商品关键字", trigger: "blur" },
-        ],
-        unit_name: [
-          {
-            required: true,
-            message: "请输入单位",
-            trigger: "change",
-          },
-        ],
-        store_info: [
-          { required: true, message: "请输入商品简介", trigger: "blur" },
-        ],
-        //image: [{ required: true, message: "请上传商品图", trigger: "change" }],
-        slider_image: [
-          {
-            required: true,
-            message: "请上传商品轮播图",
-            type: "array",
-            trigger: "change",
-          },
-        ],
-        spec_type: [
-          { required: true, message: "请选择商品规格", trigger: "change" },
-        ],
-        selectRule: [
-          { required: true, message: "请选择商品规格属性", trigger: "change" },
-        ]
-      },
-      manyBrokerage: 0,
-      manyBrokerageTwo: 0,
-      manyVipPrice: 0,
-      upload: {
-        videoIng: false, // 是否显示进度条;
-      },
-      videoIng: false, // 是否显示进度条;
-      progress: 0, // 进度条默认0
-      videoLink: "",
-      attrs: [],
-      // activity: { 默认: "colorBlue", 秒杀: "colorBlue", 砍价: "colorBlue", 拼团: "colorBlue" },
-      // couponName: [],
-      updateIds: [],
-      updateName: [],
-      rakeBack: [
-        {
-          title: "一级返佣",
-          slot: "brokerage",
-          align: "center",
-          width: 95,
-        },
-        {
-          title: "二级返佣",
-          slot: "brokerage_two",
-          align: "center",
-          width: 95,
-        },
-      ],
-      member: [
-        {
-          title: "会员价",
-          slot: "vip_price",
-          align: "center",
-          width: 95,
-        },
-      ],
-      headerCarMy:{
-        title: "卡密设置",
-        slot: "fictitious",
-        align: "center",
-        width: 95,
-      },
-      columnsInstalM: [],
-      moveIndex: "",
-      goodsData:[],
-      brandData:[],
-      unitNameList:[],
-      formBrand:{},
-      attrsList:[],
-      activeAtter:[],
-      tabIndex: 0,
-      tabName: "",
-      attrData:[],
-      datePickerOptions: {
-        disabledDate (date) {
-          return date && date.valueOf() < Date.now() - 86400000;
-        }
-      },
-      openErp:false,
-      formList: []
-    };
-  },
-  computed: {
-    ...mapState("admin/layout", ["isMobile","menuCollapse"]),
-    labelWidth() {
-      return this.isMobile ? undefined : 120;
-    },
-    labelPosition() {
-      return this.isMobile ? "top" : "right";
-    },
-    labelBottom() {
-      return this.isMobile ? undefined : 15;
-    },
-    startPickOptions() {
-      const that = this;
-      return {
-        disabledDate(time) {
-          if(that.formValidate.auto_off_time) {
-            return(
-                time.getTime() > new Date(that.formValidate.auto_off_time).getTime() - 86400000
-            )
-          }
-          return ''
-        }
-      }
-    },
-    endPickOptions() {
-      const that = this;
-      return {
-        disabledDate(time) {
-          if(that.formValidate.is_show == '1'){
-            return time.getTime() < Date.now();
-          }
-          if(that.formValidate.auto_on_time) {
-            return(
-                time.getTime() < new Date(that.formValidate.auto_on_time).getTime() + 86400000
-            )
-          }
-          return ''
-        }
-      }
-    },
-    changeUnit() {
-      const { unitNameList } = this;
-      const { unit_name } = this.formValidate;
-      return {
-        unitNameList,
-        unit_name
-      };
-    }
-  },
-  watch: {
-    changeUnit({ unitNameList, unit_name }) {
-      if (!unit_name) {
-        return;
-      }
-      let result = unitNameList.find(unit => unit.name == unit_name);
-      if (!result) {
-        this.formValidate.unit_name = '';
-      }
-    }
-  },
-  created() {
-    this.columns = this.columns2.slice(1, 10);
-    let data = JSON.parse(JSON.stringify(this.columns2));
-    data.splice(8,2,this.headerCarMy);
-    this.columnsCarMy = data;
-    let fictitious = JSON.parse(JSON.stringify(this.columns2));
-    fictitious.splice(8,2);
-    this.columnsFictitious = fictitious;
-    this.getToken();
-    this.getErpConfig();
-    // this.columnsInstall = this.columns2.slice(0, 4).concat(this.columnsInstall);
-    // this.columnsInsta8 = this.columns2.slice(0, 4).concat(this.columnsInsta8);
-  },
-  mounted() {
-    this.setCopyrightShow({ value: false });
-    if ((this.$route.params.id !== "0" && this.$route.params.id) || this.$route.query.copy) {
-      this.getInfo();
-    } else if (this.$route.params.id === "0") {
-      productCache()
-          .then((res) => {
-            let data = res.data.info;
-            if (!Array.isArray(data)) {
-              let cate_id = data.cate_id.map(Number);
-              // let label_id = data.label_id.map(Number);
-              this.attrs = data.items || [];
-              let ids = [];
-              // let names = [];
-              // if (data.coupons) {
-              //     data.coupons.map((item) => {
-              //         ids.push(item.id);
-              //     });
-              //     this.couponName = data.coupons;
-              // }
-              let brandIds = [];
-              data.brand_id.forEach(item=>{
-                brandIds.push(item.toString())
-              })
-              this.formValidate = data;
-              this.formTypeList = data.custom_form_info || [];
-              this.formValidate.brand_id = brandIds;
-              // this.couponName = data.coupons;
-              // that.couponName = names;
-              this.formValidate.coupon_ids = ids;
-              this.formValidate.is_limit = this.formValidate.is_limit?1:0;
-              this.formValidate.limit_type = parseInt(this.formValidate.limit_type);
-              // this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
-              this.updateIds = ids;
-              this.updateName = data.coupons;
-              this.formValidate.cate_id = cate_id;
-              // this.dataLabel = data.label_id;
-              this.storeDataLabel = data.store_label_id;
-              this.specsList = data.specs;
-              this.oneFormValidate = data.attrs;
-              this.formValidate.header = [];
-              this.generate(0);
-              // this.addmanyData(data.attrs);
-              // this.productTypeTap(2);
-              this.columns = this.columns2.slice(1, 10);
-              //this.manyFormValidate = data.attrs;
-              this.formValidate.system_form_id = data.system_form_id || 0;
-              if (this.formValidate.system_form_id) {
-                this.customBtn = true;
-              }
-              this.spec_type = data.spec_type;
-              if (data.spec_type === 0) {
-                this.manyFormValidate = [];
-              } else {
-                this.createBnt = true;
-                this.oneFormValidate = [
-                  {
-                    pic: data.slider_image[0],
-                    price: 0,
-                    settle_price: 0,
-                    cost: 0,
-                    ot_price: 0,
-                    stock: 0,
-                    bar_code: "",
-                    code: "",
-                    weight: 0,
-                    volume: 0,
-                    brokerage: 0,
-                    brokerage_two: 0,
-                    vip_price: 0,
-                    virtual_list: [],
-                  },
-                ];
-              }
-              this.spinShow = false;
-            }
-          })
-          .catch((err) => {
-            this.$Message.error(err.msg);
-          });
-    }
-    if(this.$route.query.type){
-      this.modals = true;
-      this.type = this.$route.query.type;
-    }else {
-      this.type = 0;
-    }
-    this.goodsCategory();
-    this.productGetRule();
-    this.productGetTemplate();
-    this.getBrandList();
-    this.getAllUnit();
-    this.uploadType();
-    this.getProductAllEnsure();
-    this.getProductAllSpecs();
-    this.getAllSystemForm();
-  },
-  destroyed () {
-    this.setCopyrightShow({ value: true });
-  },
-  methods: {
-    ...mapMutations('admin/layout', [
-      'setCopyrightShow'
-    ]),
-    changeForm(e){
-      this.getSystemFormInfo(e,{type:1});
-    },
-    getSystemFormInfo(e,data){
-      systemFormInfo(e,data).then(res=>{
-        this.formTypeList = res.data.info;
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    getAllSystemForm(){
-      allSystemForm().then(res=>{
-        this.formList = res.data;
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    limitTap(e){
-      if(e){
-        this.formValidate.limit_type = (this.formValidate.is_limit && !this.formValidate.limit_type)?1:0
-        this.formValidate.limit_num = (this.formValidate.is_limit && this.formValidate.limit_num == 0)?1:0
-      }else{
-        this.formValidate.limit_type = 0;
-        this.formValidate.limit_num = 0;
-      }
-    },
-    //erp配置
-    getErpConfig(){
-      erpConfig().then(res=>{
-        this.openErp = res.data.open_erp;
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    delSpecs(index){
-      this.specsList.splice(index, 1);
-    },
-    addSpecs(){
-      let obj = {'name':'','value':'','sort':0}
-      this.specsList.push(obj)
-    },
-    specsInfo(e){
-      this.specsData.forEach(item=>{
-        if(item.id == e){
-          this.specsList = item.specs
-        }
-      })
-    },
-    getProductAllSpecs(){
-      productAllSpecs().then(res=>{
-        this.specsData = res.data
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    getProductAllEnsure(){
-      productAllEnsure().then(res=>{
-        this.ensureData = res.data
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    //添加倒入卡密的值
-    changeVirtual(e){
-      this.virtualList = this.virtualList.concat(e);
-    },
-    //添加卡密
-    addVirtual(index, name) {
-      this.tabIndex = index;
-      this.tabName = name;
-      this.virtualListClear();
-      this.$refs.addCarMy.fixedCar = {
-        disk_info:'',
-        stock:0
-      }
-      this.$refs.addCarMy.cartMyType = 1;
-      this.carMyShow = true;
-    },
-    //确认提交卡密
-    fixdBtn(e){
-      if(e.cartMyType == 1){
-        this.$set(this[this.tabName][this.tabIndex],"disk_info",e.disk_info);
-        this.$set(this[this.tabName][this.tabIndex],"stock",Number(e.stock));
-        this[this.tabName][this.tabIndex].virtual_list = [];
-      }else{
-        this.$set(this[this.tabName][this.tabIndex],"virtual_list",e.virtualList);
-        this.$set(this[this.tabName][this.tabIndex],"stock",e.virtualList.length);
-        this[this.tabName][this.tabIndex].disk_info = '';
-      }
-      this.carMyShow = false;
-    },
-    closeCarMy(){
-      this.carMyShow = false;
-    },
-    //清空卡密
-    virtualListClear(){
-      this.virtualList = [
-        {
-          key: "",
-          value: "",
-        },
-      ];
-    },
-    seeVirtual(data, name, index) {
-      this.tabName = name;
-      this.tabIndex = index;
-      this.virtualListClear();
-      this.$refs.addCarMy.fixedCar = {
-        disk_info:'',
-        stock:0
-      }
-      if (data.virtual_list && data.virtual_list.length) {
-        this.$refs.addCarMy.cartMyType = 2;
-        this.virtualList = data.virtual_list;
-      } else if (data.disk_info) {
-        this.$refs.addCarMy.cartMyType = 1;
-        this.$refs.addCarMy.fixedCar.disk_info = data.disk_info;
-        this.$refs.addCarMy.fixedCar.stock = data.stock;
-      }
-      this.carMyShow = true;
-    },
-    //动态添加组件
-    addAssembly(){
-      this.formValidate.custom_form.push({
-        title: "",
-        label: "text",
-        value: "",
-        status: 0,
-      });
-    },
-    customMessBtn(e) {
-      if (!e) {
-        this.formValidate.system_form_id = 0;
-      }
-    },
-    addcustom() {
-      if (this.formValidate.custom_form.length > 9) {
-        this.$Message.warning("最多添加10条");
-      } else {
-        this.addAssembly();
-      }
-    },
-    delcustom(index) {
-      this.formValidate.custom_form.splice(index, 1);
-    },
-    // 预售具体日期
-    // onchangeTime(e) {
-    //     this.formValidate.presale_time = e;
-    // },
-    //定时上架
-    onchangeShow(e){
-      this.formValidate.auto_on_time = e
-    },
-    //定时下架
-    onchangeOff(e){
-      this.formValidate.auto_off_time = e
-    },
-    //打开属性
-    batchAttr(){
-      this.attrShow = true;
-      // if(!this.activeAtter.length){
-      //  let data = this.attrs;
-      //  data.map(el=>{
-      //  			el.details = [];
-      //  	el.detail.map(label=>{
-      //  		el.details.push({
-      //  			name:label,
-      //  			select:false
-      //  		})
-      //  	})
-      //  })
-      //  this.attrsList = data;
-      // }
-    },
-    //获取属性
-    getAttr(){
-      this.oneFormBatch[0].attr = '全部';
-      let data = this.attrs;
-      data.map(el=>{
-        el.details = [];
-        el.detail.map(label=>{
-          el.details.push({
-            name:label,
-            select:false
-          })
-        })
-      })
-      this.attrsList = data;
-    },
-    //选中属性
-    activeAttr(e){
-      this.attrsList = e;
-    },
-    //关闭属性弹窗
-    labelAttr(){
-      this.attrShow = false;
-    },
-    //多属性为空
-    manyEmpty(j){
-      j.pic = '';
-      j.price = 0;
-      j.settle_price = 0;
-      j.cost = 0;
-      j.ot_price = 0;
-      j.stock = 0;
-      j.bar_code = '';
-      j.code = '';
-      j.weight = 0;
-      j.volume = 0;
-      j.virtual_list = []
-    },
-
-
-    doCombination(arr) {
-      var count = arr.length - 1; //数组长度(从0开始)
-      var tmp = [];
-      var totalArr = [];// 总数组
-
-      return doCombinationCallback(arr, 0);//从第一个开始
-      //js 没有静态数据,为了避免和外部数据混淆,需要使用闭包的形式
-      function doCombinationCallback(arr, curr_index) {
-        for(let val of arr[curr_index]) {
-          tmp[curr_index] = val;//以curr_index为索引,加入数组
-          //当前循环下标小于数组总长度,则需要继续调用方法
-          if(curr_index < count) {
-            doCombinationCallback(arr, curr_index + 1);//继续调用
-          }else{
-            totalArr.push(tmp.join(','));//(直接给push进去,push进去的不是值,而是值的地址)
-          }
-
-          //js  对象都是 地址引用(引用关系),每次都需要重新初始化,否则 totalArr的数据都会是最后一次的 tmp 数据;
-          let oldTmp = tmp;
-          tmp = [];
-          for(let index of oldTmp) {
-            tmp.push(index);
-          }
-        }
-        return totalArr;
-      }
-    },
-
-    //提交属性值;
-    subAttrs(e){
-      let selectData = [];
-      this.attrsList.forEach((el,index)=>{
-        let obj = [];
-        el.details.forEach((label)=>{
-          if(label.select){
-            obj.push(label.name);
-          }
-        })
-        if(obj.length){
-          selectData.push(obj)
-        }
-      })
-      let newData = [];
-      if(selectData.length){
-        newData = this.doCombination(selectData);
-      }
-      this.attrShow = false;
-      this.activeAtter = selectData;
-      this.oneFormBatch[0].attr = newData.length?newData.join(';') : '全部';
-      this.manyFormValidate.forEach(j=>{
-        j.select = false;
-        if(newData.length){
-          newData.forEach(item=>{
-            if(j.values.split('').length == item.split('').length){
-              if(j.values == item){
-                j.select = true;
-              }
-            }else{
-              if(j.values.indexOf(item) != -1){
-                j.select = true;
-              }
-            }
-          })
-        }else{
-          j.select = true;
-        }
-      })
-      this.$set(this,'manyFormValidate',this.manyFormValidate)
-    },
-    goodsOn(e){
-      if(e==0 || e==1){
-        this.formValidate.auto_on_time = '';
-      }
-    },
-    goodsOff(e){
-      if(!e){
-        this.formValidate.auto_off_time = '';
-      }
-    },
-    addBrand(){
-      this.$refs.menusFrom.modals = true
-      this.$refs.menusFrom.titleFrom = "添加品牌分类"
-      this.formBrand = {
-        sort:0,
-        is_show:1
-      }
-      this.formBrand.fid = [0];
-      this.$refs.menusFrom.type = 1
-    },
-    getAllUnit(){
-      productAllUnit().then(res=>{
-        this.unitNameList = res.data;
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    addClass(){
-      this.$modalForm(productCreateApi()).then(() => this.goodsCategory());
-    },
-    addUnit(){
-      this.$modalForm(productUnitCreate()).then(() => this.getAllUnit());
-    },
-    addStoreLabel(){
-      this.$modalForm(productLabelAdd()).then(() => {});
-    },
-    productTypeTap(num,item){
-      if(num == 1){
-        if(this.$route.params.id) return this.$Message.error('商品类型不能切换!');
-        this.formValidate.product_type = item.id;
-      }
-      if(this.formValidate.product_type){
-        this.headTab = [
-          { title: "基础信息", name: "1" },
-          { title: "规格库存", name: "2" },
-          { title: "商品详情", name: "3" },
-          { title: "其他设置", name: "4" },
-        ]
-        this.formValidate.postage = 0;
-        this.formValidate.supplier_id = 0;
-      }else{
-        this.headTab = [
-          { title: "基础信息", name: "1" },
-          { title: "规格库存", name: "2" },
-          { title: "商品详情", name: "3" },
-          { title: "其他设置", name: "4" },
-        ]
-      }
-    },
-    // closeLabel(label){
-    //     let index = this.dataLabel.indexOf(this.dataLabel.filter(d=>d.id == label.id)[0]);
-    //     this.dataLabel.splice(index,1);
-    // },
-    // activeData(dataLabel){
-    //     this.labelShow = false;
-    //     this.dataLabel = dataLabel;
-    // },
-    // openLabel(row) {
-    //     this.labelShow = true;
-    //     this.$refs.userLabel.userLabel(JSON.parse(JSON.stringify(this.dataLabel)));
-    // },
-    // 标签弹窗关闭
-    labelClose() {
-      this.labelShow = false;
-    },
-    closeStoreLabel(label){
-      let index = this.storeDataLabel.indexOf(this.storeDataLabel.filter(d=>d.id == label.id)[0]);
-      this.storeDataLabel.splice(index,1);
-    },
-    activeStoreData(storeDataLabel){
-      this.storeLabelShow = false;
-      this.storeDataLabel = storeDataLabel;
-    },
-    openStoreLabel(row) {
-      this.storeLabelShow = true;
-      this.$refs.storeLabel.userLabel(JSON.parse(JSON.stringify(this.storeDataLabel)));
-    },
-    // 标签弹窗关闭
-    storeLabelClose() {
-      this.storeLabelShow = false;
-    },
-    // 品牌列表
-    getBrandList(){
-      brandList().then(res=>{
-        //initBran()函数作用iview中规定value必须是字符串,后台返回成了数字,用于处理这个,给了个递归;
-        this.initBran(res.data);
-        this.brandData = res.data;
-      }).catch(err=>{
-        this.$Message.error(err.msg);
-      })
-    },
-    initBran(data){
-      data.map(item=>{
-        item.value = item.value.toString();
-        if(item.children && item.children.length){
-          this.initBran(item.children);
-        }
-      })
-    },
-    getProductId(e){
-      this.goodsModals = false;
-      let nArr = this.goodsData.concat(e).filter((element,index,self)=>{
-        return self.findIndex(x=>x.product_id==element.product_id) == index
-      })
-
-      this.goodsData = nArr.slice(0,12);
-    },
-    goodCancel () {
-      this.goodsModals = false;
-    },
-    // goodsTap(){
-    //     this.goodsModals = true;
-    //     this.$refs.goodslist.handleSelectAll();
-    // },
-    // bindDelete (index) {
-    //     this.goodsData.splice(index, 1)
-    // },
-    cancel() {
-      this.$router.push({path:`${Setting.roterPre}/product/index`});
-    },
-
-    videoSaveToUrl(file) {
-      let imgTypeArr = ["video/mp4"];
-      let imgType = imgTypeArr.indexOf(file.type) !== -1
-      if (!imgType) {
-        return this.$Message.warning({
-          content:  '文件  ' + file.name + '  格式不正确, 请选择格式正确的视频',
-          duration: 5
-        });
-      }
-      uploadByPieces({
-        randoms: "", // 随机数,这里作为给后端处理分片的标识 根据项目看情况 是否要加
-        file: file, // 视频实体
-        pieceSize: 3, // 分片大小
-        success: (data) => {
-          this.formValidate.video_link = data.file_path;
-          this.progress = 100;
-        },
-        error: (e) => {
-          this.$Message.error(e.msg);
-        },
-        uploading: (chunk, allChunk) => {
-          this.videoIng = true;
-          let st = Math.floor((chunk / allChunk) * 100);
-          this.progress = st;
-        },
-      });
-      return false;
-    },
-
-    // 上传头部token
-    getToken() {
-      this.header["Authori-zation"] = "Bearer " + util.cookies.get("token");
-    },
-    // beforeUpload() {
-    //   this.uploadData = {};
-    //   let promise = new Promise((resolve) => {
-    //     this.$nextTick(function () {
-    //       resolve(true);
-    //     });
-    //   });
-    //   return promise;
-    // },
-    // 上传成功
-    handleSuccess(res, file, fileList) {
-      if (res.status === 200) {
-        this.formValidate.video_link = res.data.src;
-        this.$Message.success(res.msg);
-      } else {
-        this.$Message.error(res.msg);
-      }
-    },
-    //获取视频上传类型
-    uploadType() {
-      uploadType().then((res) => {
-        this.upload_type = res.data.upload_type;
-      });
-    },
-    getEditorContent(data) {
-      this.content = data;
-    },
-    infoData(data){
-      let cate_id = data.cate_id.map(Number);
-      this.attrs = data.items || [];
-      let ids = [];
-      data.coupons.map((item) => {
-        ids.push(item.id);
-      });
-      this.goodsData = data.recommend_list;
-      if(data.auto_off_time){
-        this.off_show = 1;
-      }else{
-        this.off_show = 0;
-      }
-      let brandIds = [];
-      data.brand_id.forEach(item=>{
-        brandIds.push(item.toString())
-      })
-      this.formValidate = data;
-      this.formTypeList = data.custom_form_info;
-      this.formValidate.brand_id = brandIds;
-      this.formValidate.is_limit = this.formValidate.is_limit?1:0;
-      this.formValidate.limit_type = parseInt(data.limit_type);
-      // this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
-      this.contents = data.description;
-      // this.couponName = data.coupons;
-      this.formValidate.coupon_ids = ids;
-      this.updateIds = ids;
-      this.updateName = data.coupons;
-      this.formValidate.cate_id = cate_id;
-      // this.dataLabel = data.label_id;
-      this.storeDataLabel = data.store_label_id;
-      this.specsList = data.specs;
-      if(data.attr){
-        this.oneFormValidate = [data.attr];
-      }
-      this.formValidate.header = [];
-      this.generate(0);
-      //this.manyFormValidate = data.attrs;
-      // this.addmanyData(data.attrs);
-      // this.productTypeTap(2);
-      this.formValidate.system_form_id = data.system_form_id || 0;
-      if (this.formValidate.system_form_id) {
-        this.customBtn = true;
-      }
-      this.spec_type = data.spec_type;
-      if (data.spec_type === 0) {
-        this.manyFormValidate = [];
-      } else {
-        this.createBnt = true;
-        this.oneFormValidate = [
-          {
-            pic: "",
-            price: 0,
-            settle_price: 0,
-            cost: 0,
-            ot_price: 0,
-            stock: 0,
-            bar_code: "",
-            code: "",
-            weight: 0,
-            volume: 0,
-            brokerage: 0,
-            brokerage_two: 0,
-            vip_price: 0,
-            virtual_list: [],
-          },
-        ];
-      }
-    },
-    //关闭淘宝弹窗并生成数据;
-    onClose(data){
-      this.modals = false;
-      this.infoData(data);
-    },
-
-    checkMove(evt) {
-      this.moveIndex = evt.draggedContext.index;
-    },
-    end() {
-      this.moveIndex = "";
-    },
-    // checkAllGroupChange(data) {
-    //     this.checkAllGroup(data);
-    // },
-    // checkAllGroup(data) {
-    //     if (this.formValidate.spec_type === 0) {
-    //         if (data.indexOf(0) > -1) {
-    //             this.columnsInstall = this.columns2.slice(1, 5).concat(this.member);
-    //         } else if (data.indexOf(1) > -1) {
-    //             this.columnsInstall = this.columns2.slice(1, 5).concat(this.rakeBack);
-    //         } else {
-    //             this.columnsInstall = this.columns2.slice(1, 5);
-    //         }
-    //         if (data.length === 2) {
-    //             this.columnsInstall = this.columns2
-    //                 .slice(1, 5)
-    //                 .concat(this.rakeBack)
-    //                 .concat(this.member);
-    //         }
-    //     } else {
-    //         if (data.indexOf(0) > -1) {
-    //             this.columnsInstal2 = this.columnsInstalM
-    //                 .slice(0, 4)
-    //                 .concat(this.member);
-    //         } else if (data.indexOf(1) > -1) {
-    //             this.columnsInstal2 = this.columnsInstalM
-    //                 .slice(0, 4)
-    //                 .concat(this.rakeBack);
-    //         } else {
-    //             this.columnsInstal2 = this.columnsInstalM.slice(0, 4);
-    //         }
-    //         if (data.length === 2) {
-    //             this.columnsInstal2 = this.columnsInstalM
-    //                 .slice(0, 4)
-    //                 .concat(this.rakeBack)
-    //                 .concat(this.member);
-    //         }
-    //     }
-    // },
-    // 添加优惠券
-    // addCoupon() {
-    //     this.$refs.couponTemplates.isTemplate = true;
-    //     this.$refs.couponTemplates.tableList();
-    // },
-    //对象数组去重;
-    unique(arr) {
-      const res = new Map();
-      return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
-    },
-    // nameId(id, names) {
-    //     this.formValidate.coupon_ids = id;
-    //     this.couponName = this.unique(names);
-    // },
-    // handleClose(name) {
-    //     let index = this.couponName.indexOf(name);
-    //     this.couponName.splice(index, 1);
-    //     let couponIds = this.formValidate.coupon_ids;
-    //     couponIds.splice(index, 1);
-    //     this.updateIds = couponIds;
-    //     this.updateName = this.couponName;
-    // },
-    // 运费模板
-    getList() {
-      this.productGetTemplate();
-    },
-    // 添加运费模板
-    addTemp() {
-      this.$refs.templates.isTemplate = true;
-    },
-	//查看、编辑运费模板
-	editTemp(){
-	  this.$refs.templates.isTemplate = true;
-	  this.$refs.templates.editFrom(this.formValidate.temp_id);
-	},
-    // 删除视频;
-    delVideo() {
-      let that = this;
-      that.$set(that.formValidate, "video_link", "");
-      that.$set(that, "progress", 0);
-      that.videoIng = false;
-      that.upload.videoIng = false;
-    },
-    zh_uploadFile() {
-      if (this.seletVideo == 1) {
-        if(this.videoLink && this.$getFileType(this.videoLink) == 'video'){
-          this.formValidate.video_link = this.videoLink;
-        }else{
-          return this.$Message.error("请输入正确的视频链接")
-        }
-      } else {
-        this.$refs.refid.click();
-      }
-    },
-    zh_uploadFile_change(evfile) {
-      let that = this;
-      let suffix = evfile.target.files[0].name.substr(
-          evfile.target.files[0].name.indexOf(".")
-      );
-      if (suffix.indexOf(".mp4") === -1) {
-        return that.$Message.error("只能上传MP4文件");
-      }
-	  let types = {
-	    key: evfile.target.files[0].name,
-	    contentType: evfile.target.files[0].type,
-	  };
-      productGetTempKeysApi(types)
-          .then((res) => {
-            that.$videoCloud
-                .videoUpload({
-                  type: res.data.type,
-                  evfile: evfile,
-                  res: res,
-                  uploading(status, progress) {
-                    that.upload.videoIng = status;
-                    if (res.status == 200) {
-                      that.progress = 100;
-                    }
-                  },
-                })
-                .then((res) => {
-                  that.formValidate.video_link = res.url;
-                  that.$Message.success("视频上传成功");
-                  that.upload.videoIng = false;
-                })
-                .catch((res) => {
-                  that.$Message.error(res);
-                });
-          })
-          .catch((res) => {
-            that.$Message.error(res.msg);
-          });
-    },
-    // 上一页;
-    upTab() {
-      if(this.currentTab==3&&this.formValidate.product_type!=0){
-        this.currentTab = (Number(this.currentTab) - 2).toString();
-      }else{
-        this.currentTab = (Number(this.currentTab) - 1).toString();
-      }
-    },
-    // 下一页;
-    downTab(name) {
-      this.$refs[name].validate((valid) => {
-        if (valid) {
-          if(this.formValidate.is_show == 2 && !this.formValidate.auto_on_time){
-            return this.$Message.warning("请填写定时上架时间");
-          }
-          if(this.off_show == 1 && !this.formValidate.auto_off_time){
-            return this.$Message.warning("请填写定时下架时间");
-          }
-          if(this.currentTab==3&&this.formValidate.product_type!=0){
-            this.currentTab = (Number(this.currentTab) + 2).toString();
-          }else{
-            this.currentTab = (Number(this.currentTab) + 1).toString();
-          }
-        }else{
-          this.$Message.warning("请完善数据");
-        }
-      })
-    },
-    // 属性弹窗回调函数;
-    userSearchs() {
-      this.productGetRule();
-    },
-    // 添加规则;
-    addRule() {
-      this.$refs.addattr.modal = true;
-    },
-    // 批量设置分佣;
-    // brokerageSetUp() {
-    //     let that = this;
-    //     if (that.formValidate.is_sub.indexOf(1) > -1) {
-    //         if (that.manyBrokerage <= 0 || that.manyBrokerageTwo <= 0) {
-    //             return that.$Message.error("请填写返佣金额后进行批量添加");
-    //         }
-    //     } else if (that.formValidate.is_sub.indexOf(0) > -1) {
-    //         if (that.manyVipPrice <= 0) {
-    //             return that.$Message.error("请填写会员价后进行批量添加");
-    //         }
-    //     }
-    //     if (this.formValidate.is_sub.length === 2) {
-    //         if (
-    //             that.manyBrokerage <= 0 ||
-    //             that.manyBrokerageTwo <= 0 ||
-    //             that.manyVipPrice <= 0
-    //         ) {
-    //             return that.$Message.error("请填写完金额后进行批量添加");
-    //         }
-    //     }
-    //     for (let val of that.manyFormValidate) {
-    //         this.$set(val, "brokerage", that.manyBrokerage);
-    //         this.$set(val, "brokerage_two", that.manyBrokerageTwo);
-    //         this.$set(val, "vip_price", that.manyVipPrice);
-    //     }
-    // },
-    // 批量设置会员价
-    vipPriceSetUp() {
-      let that = this;
-      if (that.manyVipPrice <= 0) {
-        return that.$Message.error("请填写会员价在进行批量添加");
-      } else {
-        for (let val of that.manyFormValidate) {
-          this.$set(val, "vip_price", that.manyVipPrice);
-        }
-      }
-    },
-    batchDel() {
-      this.oneFormBatch = [
-        {
-          attr:"全部",
-          pic: "",
-          price: 0,
-          settle_price: 0,
-          cost: 0,
-          ot_price: 0,
-          stock: 0,
-          bar_code: "",
-          code: "",
-          weight: 0,
-          volume: 0,
-          virtualList:[],
-          disk_info:''
-        },
-      ];
-      this.activeAtter=[];
-      for (let val of this.manyFormValidate) {
-        val.select = true;
-      }
-    },
-    confirm() {
-      let that = this;
-      that.createBnt = true;
-      if (that.formValidate.selectRule.trim().length <= 0) {
-        return that.$Message.error("请选择属性");
-      }
-      that.ruleList.forEach(function (item, index) {
-        if (item.rule_name === that.formValidate.selectRule) {
-          that.attrs = item.rule_value;
-        }
-      });
-    },
-    // 获取商品属性模板;
-    productGetRule() {
-      productGetRuleApi().then((res) => {
-        this.ruleList = res.data;
-      });
-    },
-    // 获取运费模板;
-    productGetTemplate() {
-      productGetTemplateApi().then((res) => {
-        this.templateList = res.data;
-      });
-    },
-    // 删除表格中的属性
-    delAttrTable(index) {
-      let id = this.$route.params.id;
-      if (id) {
-        // checkActivityApi(id)
-        //     .then((res) => {
-        this.manyFormValidate.splice(index, 1);
-        this.$Message.success(res.msg);
-        // })
-        // .catch((res) => {
-        //     this.$Message.error(res.msg);
-        // });
-      } else {
-        this.manyFormValidate.splice(index, 1);
-      }
-    },
-    // 批量添加
-    batchAdd() {
-      for (let val of this.manyFormValidate) {
-        //this.manyEmpty(val);
-        if(val.select){
-          if (this.oneFormBatch[0].pic) {
-            this.$set(val, "pic", this.oneFormBatch[0].pic);
-          }
-          if (this.oneFormBatch[0].price > 0) {
-            this.$set(val, "price", this.oneFormBatch[0].price);
-          }
-          if (this.oneFormBatch[0].settle_price > 0) {
-            this.$set(val, "settle_price", this.oneFormBatch[0].settle_price);
-          }
-          if (this.oneFormBatch[0].cost > 0) {
-            this.$set(val, "cost", this.oneFormBatch[0].cost);
-          }
-          if (this.oneFormBatch[0].ot_price > 0) {
-            this.$set(val, "ot_price", this.oneFormBatch[0].ot_price);
-          }
-          if (this.oneFormBatch[0].stock > 0) {
-            this.$set(val, "stock", this.oneFormBatch[0].stock);
-          }
-          if (this.oneFormBatch[0].bar_code !== "") {
-            this.$set(val, "bar_code", this.oneFormBatch[0].bar_code);
-          }
-          if (this.oneFormBatch[0].code !== "") {
-            this.$set(val, "code", this.oneFormBatch[0].code);
-          }
-          if (this.oneFormBatch[0].weight > 0) {
-            this.$set(val, "weight", this.oneFormBatch[0].weight);
-          }
-          if (this.oneFormBatch[0].volume > 0) {
-            this.$set(val, "volume", this.oneFormBatch[0].volume);
-          }
-          if(this.formValidate.product_type == 1){
-            if(this.oneFormBatch[0].virtual_list && this.oneFormBatch[0].virtual_list.length){
-              this.$set(val, "virtual_list", this.oneFormBatch[0].virtual_list);
-            }else if(this.oneFormBatch[0].disk_info){
-              this.$refs.addCarMy.cartMyType = 1;
-              this.$set(val, "disk_info", this.oneFormBatch[0].disk_info);
-            }
-          }
-        }
-      }
-    },
-    // 添加按钮
-    addBtn() {
-      this.clearAttr();
-      this.createBnt = false;
-      this.showIput = true;
-    },
-    addmanyData(data){
-      data.forEach(item=>{
-        item.select = true
-      })
-      this.manyFormValidate = data;
-    },
-    // 立即生成
-    generate(type) {
-      generateAttrApi({ attrs: this.attrs,product_type: this.formValidate.product_type }, this.formValidate.id, type)
-          .then((res) => {
-            let info = res.data.info,
-                header1 = JSON.parse(JSON.stringify(info.header));
-            if (this.$route.params.id !== "0") {
-              this.addmanyData(info.value);
-            }
-            this.formValidate.header = header1;
-            this.attrData = res.data.info.attr;
-            let header = info.header;
-            header.pop();
-            this.columnsInstalM = info.header;
-            // this.checkAllGroup(this.formValidate.is_sub);
-            if (!this.$route.params.id && this.formValidate.spec_type === 1) {
-              this.manyFormValidate.map((item) => {
-                item.pic = this.formValidate.slider_image[0];
-              });
-              this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
-            } else if (this.$route.params.id) {
-              this.manyFormValidate.map((item) => {
-                if (!item.pic) {
-                  item.pic = this.formValidate.slider_image[0];
-                }
-              });
-              this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
-            }
-            this.getAttr();
-          })
-          .catch((res) => {
-            this.$Message.error(res.msg);
-          });
-    },
-    // 取消
-    offAttrName() {
-      this.showIput = false;
-      this.createBnt = true;
-    },
-    clearAttr() {
-      this.formDynamic.attrsName = "";
-      this.formDynamic.attrsVal = "";
-    },
-    // 删除规格
-    handleRemoveRole(index) {
-      this.attrs.splice(index, 1);
-      this.manyFormValidate.splice(index, 1);
-    },
-    // 删除属性
-    handleRemove2(item, index) {
-      item.splice(index, 1);
-    },
-    // 添加规则名称
-    createAttrName() {
-      if (this.formDynamic.attrsName && this.formDynamic.attrsVal) {
-        let data = {
-          value: this.formDynamic.attrsName,
-          detail: [this.formDynamic.attrsVal],
-        };
-        this.attrs.push(data);
-        var hash = {};
-        this.attrs = this.attrs.reduce(function (item, next) {
-          /* eslint-disable */
-          hash[next.value] ? "" : (hash[next.value] = true && item.push(next));
-          return item;
-        }, []);
-        this.clearAttr();
-        this.showIput = false;
-        this.createBnt = true;
-      } else {
-        this.$Message.warning("请添加完整的规格!");
-      }
-    },
-    // 添加属性
-    createAttr(num, idx) {
-      if (num) {
-        this.attrs[idx].detail.push(num);
-        var hash = {};
-        this.attrs[idx].detail = this.attrs[idx].detail.reduce(function (
-                item,
-                next
-            ) {
-              /* eslint-disable */
-              hash[next] ? "" : (hash[next] = true && item.push(next));
-              return item;
-            },
-            []);
-      } else {
-        this.$Message.warning("请添加属性");
-      }
-    },
-    // 商品分类;
-    goodsCategory() {
-      cascaderList(1)
-          .then((res) => {
-            this.treeSelect = res.data;
-          })
-          .catch((res) => {
-            this.$Message.error(res.msg);
-          });
-    },
-    //视视上传类型
-    changeVideo(e) {
-      this.formValidate.video_link = "";
-      this.videoLink = "";
-    },
-    // 改变规格
-    changeSpec() {
-      // this.formValidate.is_sub = [];
-      // let id = this.$route.params.id;
-      // if (id) {
-      //     checkActivityApi(id)
-      //         .then((res) => {})
-      //         .catch((res) => {
-      //             this.formValidate.spec_type = this.spec_type;
-      //             this.$Message.error(res.msg);
-      //         });
-      // }
-    },
-    // 详情
-    getInfo() {
-      let that = this;
-      that.spinShow = true;
-      productInfoApi(that.$route.params.id || this.$route.query.copy)
-          .then((res) => {
-            let data = res.data.productInfo;
-            this.infoData(data);
-            this.spinShow = false;
-          })
-          .catch((res) => {
-            this.spinShow = false;
-            this.$Message.error(res.msg);
-          });
-    },
-    // tab切换
-    onhangeTab(name) {
-      this.currentTab = name;
-    },
-    handleRemove(i) {
-      this.images.splice(i, 1);
-      this.formValidate.slider_image.splice(i, 1);
-      this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
-    },
-    // 关闭图片上传模态框
-    changeCancel(msg) {
-      this.modalPic = false;
-    },
-    // 点击商品图
-    modalPicTap(tit, picTit, index) {
-      this.modalPic = true;
-      this.isChoice = tit === "dan" ? "单选" : "多选";
-      this.picTit = picTit;
-      this.tableIndex = index;
-    },
-    // 获取单张图片信息
-    getPic(pc) {
-      switch (this.picTit) {
-        case "danFrom":
-          this.formValidate.image = pc.att_dir;
-          if (!this.$route.params.id) {
-            if (this.formValidate.spec_type === 0) {
-              this.oneFormValidate[0].pic = pc.att_dir;
-            } else {
-              this.manyFormValidate.map((item) => {
-                item.pic = pc.att_dir;
-              });
-              this.oneFormBatch[0].pic = pc.att_dir;
-            }
-          }
-          break;
-        case "danTable":
-          this.oneFormValidate[this.tableIndex].pic = pc.att_dir;
-          break;
-        case "duopi":
-          this.oneFormBatch[this.tableIndex].pic = pc.att_dir;
-          break;
-        case "recommend_image":
-          this.formValidate.recommend_image = pc.att_dir;
-          break;
-        default:
-          this.manyFormValidate[this.tableIndex].pic = pc.att_dir;
-      }
-      this.modalPic = false;
-    },
-    // 获取多张图信息
-    getPicD(pc) {
-      this.images = pc;
-      this.images.map((item) => {
-        this.formValidate.slider_image.push(item.att_dir);
-        this.formValidate.slider_image = this.formValidate.slider_image.splice(
-            0,
-            10
-        );
-      });
-      this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
-      this.modalPic = false;
-    },
-    // 提交
-    handleSubmit(name) {
-      this.$refs[name].validate((valid) => {
-        if (valid) {
-          if (!this.formValidate.store_name.trim()) {
-            return this.$Message.warning("基础信息-商品名称不能为空");
-          }
-          if(this.formValidate.is_show == 2 && !this.formValidate.auto_on_time){
-            return this.$Message.warning("基础信息-定时上架时间不能为空");
-          }
-          if(this.off_show == 1 && !this.formValidate.auto_off_time){
-            return this.$Message.warning("基础信息-定时下架时间不能为空");
-          }
-          if(this.formValidate.freight==2&&this.formValidate.product_type == 0&&this.formValidate.postage<=0){
-            return this.$Message.warning("物流设置-固定邮费不能为0");
-          }
-          if(this.formValidate.freight==3&&this.formValidate.product_type == 0&&!this.formValidate.temp_id){
-            return this.$Message.warning("物流设置-运费模板不能为空");
-          }
-          if(this.currentTab==4 && !this.formValidate.delivery_type.length){
-            return this.$Message.warning("请选择配送方式");
-          }
-          // if(this.formValidate.product_type==0&&this.formValidate.is_presale_product&&!this.formValidate.presale_time[0]){
-          //     return this.$Message.warning("营销设置-预售时间不能为空");
-          // }
-          // for (let i = 0; i < this.formValidate.custom_form.length; i++) {
-          //     const element = this.formValidate.custom_form[i];
-          //     if (!element.title) {
-          //         return this.$Message.warning("其他设置-留言标题不能为空");
-          //     }
-          // }
-          if(this.customBtn && this.formValidate.system_form_id == 0){
-            return this.$Message.warning('其他设置-请选择自定义表单模板');
-          }
-          this.formValidate.type = this.type;
-          if (this.formValidate.spec_type === 0) {
-            this.formValidate.attrs = this.oneFormValidate;
-            this.formValidate.header = [];
-            this.formValidate.items = [];
-          } else {
-            this.formValidate.items = this.attrs;
-            this.formValidate.attrs = this.manyFormValidate;
-          }
-          if (
-              this.formValidate.spec_type === 1 &&
-              this.manyFormValidate.length === 0
-          ) {
-            return this.$Message.warning("规格库存-请点击生成多规格");
-            // return this.$Message.warning('请点击生成规格!');
-          }
-          let item = this.formValidate.attrs;
-          // if ( this.formValidate.is_sub.indexOf(1) != -1 ) {
-          //     for (let i = 0; i < item.length; i++) {
-          //         if (
-          //             item[i].brokerage === null ||
-          //             item[i].brokerage_two === null
-          //         ) {
-          //             return this.$Message.warning("营销设置- 一二级返佣不能为空");
-          //         }
-          //     }
-          // }
-          // if(this.formValidate.is_sub.indexOf(0) != -1){
-          //     for (let i = 0; i < item.length; i++) {
-          //         if (item[i].vip_price === null) {
-          //             return this.$Message.warning("营销设置-会员价不能为空");
-          //         }
-          //         if (item[i].vip_price === 0) {
-          //             return this.$Message.warning("营销设置-会员价不能为0");
-          //         }
-          //     }
-          // }
-          // if (this.formValidate.is_sub.length === 2) {
-          //     for (let i = 0; i < item.length; i++) {
-          //         if (
-          //             item[i].brokerage === null ||
-          //             item[i].brokerage_two === null ||
-          //             item[i].vip_price === null
-          //         ) {
-          //             return this.$Message.error(
-          //                 "营销设置- 一二级返佣和会员价不能为空"
-          //             );
-          //         }
-          //     }
-          // }
-          for (let i = 0; i < this.specsList.length; i++){
-            let data = this.specsList[i];
-            if(!data.name.trim()){
-              return this.$Message.error('请输入参数名称');
-            }
-            if(!data.value.trim()){
-              return this.$Message.error('请输入参数值');
-            }
-          }
-          // if(!this.formValidate.product_type){
-          //     this.formValidate.is_support_refund = 1;
-          // }
-          this.openSubimit = false;
-          this.formValidate.description = this.formatRichText(this.content);
-          let goodsId = [];
-          this.goodsData.forEach(item=>{
-            goodsId.push(item.product_id)
-          })
-          this.formValidate.recommend_list = goodsId;
-          // 用户标签
-          // let activeIds = [];
-          // this.dataLabel.forEach((item)=>{
-          //     activeIds.push(item.id)
-          // });
-          // this.formValidate.label_id = activeIds
-          // 商品标签
-          let storeActiveIds = [];
-          this.storeDataLabel.forEach((item)=>{
-            storeActiveIds.push(item.id)
-          });
-          this.formValidate.store_label_id = storeActiveIds
-          // 商品参数
-          this.formValidate.specs = this.specsList;
-          if (this.$route.query.copy) {
-            this.formValidate.id = 0;
-            this.formValidate.soure_link = '';
-          }
-          productAddApi(this.formValidate)
-              .then(async (res) => {
-                this.openSubimit = true;
-                this.$Message.success(res.msg);
-                if (this.$route.params.id === "0") {
-                  cacheDelete().catch((err) => {
-                    this.$Message.error(err.msg);
-                  });
-                }
-                setTimeout(() => {
-                  this.$router.push({ path: `${Setting.roterPre}/product/index` });
-                }, 500);
-              })
-              .catch((res) => {
-                this.openSubimit = false;
-                this.$Message.error(res.msg);
-              });
-        } else {
-          if (!this.formValidate.store_name) {
-            return this.$Message.warning("基础信息-商品名称不能为空");
-          } else if (!this.formValidate.cate_id.length) {
-            return this.$Message.warning("基础信息-商品分类不能为空");
-          } else if (!this.formValidate.unit_name) {
-            return this.$Message.warning("基础信息-商品单位不能为空");
-          } else if (!this.formValidate.slider_image.length) {
-            return this.$Message.warning("基础信息-商品轮播图不能为空");
-          }
-          //    if(!this.formValidate.store_name || !this.formValidate.cate_id || !this.formValidate.keyword
-          //    || !this.formValidate.unit_name || !this.formValidate.store_info
-          //        || !this.formValidate.image || !this.formValidate.slider_image){
-          //        this.$Message.warning("请填写完整商品信息!");
-          //    }
-        }
-      });
-    },
-    changeTemplate(msg) {
-      this.template = msg;
-    },
-    // 表单验证
-    validate(prop, status, error) {
-      if (status === false) {
-        this.$Message.warning(error);
-      }
-    },
-    // 移动
-    handleDragStart(e, item) {
-      this.dragging = item;
-    },
-    handleDragEnd(e, item) {
-      this.dragging = null;
-    },
-    handleDragOver(e) {
-      e.dataTransfer.dropEffect = "move";
-    },
-    handleDragEnter(e, item) {
-      e.dataTransfer.effectAllowed = "move";
-      if (item === this.dragging) {
-        return;
-      }
-      const newItems = [...this.formValidate.slider_image];
-      const src = newItems.indexOf(this.dragging);
-      const dst = newItems.indexOf(item);
-      newItems.splice(dst, 0, ...newItems.splice(src, 1));
-      this.formValidate.slider_image = newItems;
-    },
-    // 添加自定义弹窗
-    addCustomDialog(editorId) {
-      window.UE.registerUI(
-          "test-dialog",
-          function (editor, uiName) {
-            // 创建 dialog
-            let dialog = new window.UE.ui.Dialog({
-              iframeUrl: "/store/widget.images/index.html?fodder=dialog",
-              editor: editor,
-              name: uiName,
-              title: "上传图片",
-              cssRules: "width:1200px;height:500px;padding:20px;",
-            });
-            this.dialog = dialog;
-            let btn = new window.UE.ui.Button({
-              name: "dialog-button",
-              title: "上传图片",
-              cssRules: `background-image: url(https://cdn.oss.9gt.net/prov1.1/1/icons.png);background-position: -726px -77px;`,
-              onclick: function () {
-                // 渲染dialog
-                dialog.render();
-                dialog.open();
-              },
-            });
-            return btn;
-          },
-          37
-      );
-      window.UE.registerUI(
-          "video-dialog",
-          function (editor, uiName) {
-            let dialog = new window.UE.ui.Dialog({
-              iframeUrl: "/store/widget.video/index.html?fodder=video",
-              editor: editor,
-              name: uiName,
-              title: "上传视频",
-              cssRules: "width:1000px;height:500px;padding:20px;",
-            });
-            this.dialog = dialog;
-            let btn = new window.UE.ui.Button({
-              name: "video-button",
-              title: "上传视频",
-              cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -320px -20px;`,
-              onclick: function () {
-                // 渲染dialog
-                dialog.render();
-                dialog.open();
-              },
-            });
-            return btn;
-          },
-          38
-      );
-    },
-    formatRichText(html) {
-      let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) {
-        match = match
-            .replace(/style="[^"]+"/gi, "")
-            .replace(/style='[^']+'/gi, "");
-        match = match
-            .replace(/width="[^"]+"/gi, "")
-            .replace(/width='[^']+'/gi, "");
-        match = match
-            .replace(/height="[^"]+"/gi, "")
-            .replace(/height='[^']+'/gi, "");
-        return match;
-      });
-      newContent = newContent.replace(
-          /style="[^"]+"/gi,
-          function (match, capture) {
-            match = match
-                .replace(/width:[^;]+;/gi, "max-width:100%;")
-                .replace(/width:[^;]+;/gi, "max-width:100%;");
-            return match;
-          }
-      );
-      // newContent = newContent.replace(/<br[^>]*\/>/gi, "");
-      newContent = newContent.replace(
-          /\<img/gi,
-          '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"'
-      );
-      return newContent;
-    },
-  },
-};
+	// import COS from 'cos-js-sdk-v5'
+	import {
+		mapState,
+		mapMutations
+	} from "vuex";
+	import Setting from "@/setting";
+	import util from "@/libs/util";
+	import vuedraggable from "vuedraggable";
+	import uploadPictures from "@/components/uploadPictures";
+	import freightTemplate from "@/components/freightTemplate";
+	import wangeditor from "@/components/wangEditor/index.vue";
+
+	import menusFrom from "../components/menusFrom";
+	// import userLabel from "@/components/labelList";
+	import labelList from "@/components/labelList";
+	import couponList from "@/components/couponList";
+	import goodsList from '@/components/goodsList/index';
+	import addAttr from "../components/addAttr";
+	import attrList from "../components/attrList";
+	// import addCarMy from "../components/addCarMy";
+	// import taoBao from './taoBao'
+	import {
+		productInfoApi,
+		cascaderList,
+		productAddApi,
+		generateAttrApi,
+		productGetRuleApi,
+		productGetTemplateApi,
+		productGetTempKeysApi,
+		checkActivityApi,
+		productCache,
+		cacheDelete,
+		brandList,
+		productCreateApi,
+		productAllUnit,
+		productUnitCreate,
+		uploadType,
+		productAllEnsure,
+		productLabelAdd,
+		productAllSpecs,
+		allSystemForm,
+		systemFormInfo
+	} from "@/api/product";
+	import {
+		erpConfig
+	} from "@/api/erp";
+	import {
+		uploadByPieces
+	} from "@/utils/upload"; //引入uploadByPieces方法
+	import {
+		shelves_lst,
+	} from "@/api/order";
+	export default {
+		name: "product_productAdd",
+		components: {
+			uploadPictures,
+			freightTemplate,
+			goodsList,
+			addAttr,
+			couponList,
+			// taoBao,
+			// userLabel,
+			menusFrom,
+			attrList,
+			// addCarMy,
+			labelList,
+			wangeditor,
+			draggable: vuedraggable,
+		},
+		data() {
+			return {
+				levelList:[],
+				formTypeList: [],
+				formColumns: [{
+						title: '表单标题',
+						key: 'title',
+						// align:'center',
+						minWidth: 100
+					},
+					{
+						title: '表单类型',
+						key: 'name',
+						// align:'center',
+						minWidth: 100
+					},
+					{
+						title: '是否必填',
+						slot: 'require',
+						// align:'center',
+						minWidth: 100
+					}
+				],
+				roterPre: Setting.roterPre,
+				specsList: [],
+				specsColumns: [{
+						title: '参数名称',
+						key: 'name',
+						align: 'center',
+						width: 150,
+						render: (h, params) => {
+							return h("div", [
+								h("Input", {
+									props: {
+										value: params.row.name,
+										placeholder: '请输入参数名称'
+									},
+									on: {
+										"on-change": (e) => {
+											params.row.name = e.target.value;
+											this.specsList[params.index].name = e.target.value;
+										},
+									},
+								}),
+							]);
+						}
+					},
+					{
+						title: '参数值',
+						key: 'value',
+						align: 'center',
+						width: 300,
+						render: (h, params) => {
+							return h("div", [
+								h("Input", {
+									props: {
+										value: params.row.value,
+										placeholder: '请输入参数值'
+									},
+									on: {
+										"on-change": (e) => {
+											params.row.value = e.target.value;
+											this.specsList[params.index].value = e.target.value;
+										},
+									},
+								}),
+							]);
+						}
+					},
+					{
+						title: '排序',
+						key: 'sort',
+						align: 'center',
+						width: 100,
+						render: (h, params) => {
+							return h("div", [
+								h("InputNumber", {
+									props: {
+										value: parseInt(params.row.sort) || 0,
+										placeholder: '排序',
+										precision: 0
+									},
+									on: {
+										"on-change": (e) => {
+											params.row.sort = e;
+											this.specsList[params.index].sort = e;
+										},
+									},
+								}),
+							]);
+						}
+					},
+					{
+						title: '操作',
+						slot: 'action',
+						align: 'center',
+						minWidth: 120
+					}
+				],
+				//自定义留言下拉选择
+				customList: [{
+						value: "text",
+						label: "文本框",
+					},
+					{
+						value: "number",
+						label: "数字",
+					},
+					{
+						value: "email",
+						label: "邮件",
+					},
+					{
+						value: "data",
+						label: "日期",
+					},
+					{
+						value: "time",
+						label: "时间",
+					},
+					{
+						value: "id",
+						label: "身份证",
+					},
+					{
+						value: "phone",
+						label: "手机号",
+					},
+					{
+						value: "img",
+						label: "图片",
+					},
+				],
+				headTab: [{
+						title: "基础信息",
+						name: "1"
+					},
+					{
+						title: "规格库存",
+						name: "2"
+					},
+					{
+						title: "商品详情",
+						name: "3"
+					},
+					{
+						title: "其他设置",
+						name: "4"
+					},
+				],
+				productType: [{
+						name: "普通商品",
+						title: "物流发货",
+						id: 0
+					},
+					{
+						name: "卡密/网盘",
+						title: "自动发货",
+						id: 1
+					},
+					{
+						name: "虚拟商品",
+						title: "虚拟发货",
+						id: 3
+					},
+				],
+				virtualList: [],
+				carMyShow: false, //是否开启卡密弹窗
+				// recommend: [], //商品推荐
+				customBtn: false, //自定义留言开关
+				attrShow: false,
+				content: "",
+				contents: "",
+				seletVideo: 0,
+				fileUrl: Setting.apiBaseURL + "/file/upload",
+				fileUrl2: Setting.apiBaseURL + "/file/video_upload",
+				upload_type: "", //视频上传类型 1 本地上传 2 3 4 OSS上传
+				uploadData: {}, // 上传参数
+				header: {},
+				// dataLabel:[],
+				storeDataLabel: [],
+				labelShow: false,
+				storeLabelShow: false,
+				props: {
+					emitPath: false,
+					multiple: true,
+					checkStrictly: true
+				},
+				type: 0,
+				goodsModals: false,
+				off_show: 0,
+				modals: false,
+				spinShow: false,
+				openSubimit: false,
+				grid2: {
+					xl: 10,
+					lg: 12,
+					md: 12,
+					sm: 24,
+					xs: 24,
+				},
+				grid3: {
+					xl: 18,
+					lg: 18,
+					md: 20,
+					sm: 24,
+					xs: 24,
+				},
+				// 批量设置表格data
+				oneFormBatch: [{
+					attr: "全部",
+					pic: "",
+					price: 0,
+					settle_price: 0,
+					cost: 0,
+					ot_price: 0,
+					stock: 0,
+					bar_code: "",
+					code: "",
+					weight: 0,
+					volume: 0,
+				}, ],
+				// 规格数据
+				formDynamic: {
+					attrsName: "",
+					attrsVal: "",
+				},
+				formDynamicNameData: [],
+				isBtn: false,
+				columnsCarMy: [],
+				columns2: [{
+						title: "商品规格",
+						slot: "attr",
+						align: "center",
+						minWidth: 80,
+					},
+					{
+						title: "图片",
+						slot: "pic",
+						align: "center",
+						minWidth: 80,
+					},
+					{
+						title: "售价",
+						slot: "price",
+						align: "center",
+						minWidth: 95,
+					},
+					{
+						title: "结算价",
+						slot: "settle_price",
+						align: "center",
+						minWidth: 95,
+					},
+					// {
+					//   title: "成本价",
+					//   slot: "cost",
+					//   align: "center",
+					//   minWidth: 95,
+					// },
+					{
+						title: "原价",
+						slot: "ot_price",
+						align: "center",
+						minWidth: 95,
+					},
+					{
+						title: "库存",
+						slot: "stock",
+						align: "center",
+						minWidth: 95,
+					},
+					{
+						title: "商品条形码",
+						slot: "bar_code",
+						align: "center",
+						minWidth: 120,
+					},
+					{
+						title: "商品编号",
+						slot: "code",
+						align: "center",
+						minWidth: 120,
+					},
+					{
+						title: "重量(KG)",
+						slot: "weight",
+						align: "center",
+						minWidth: 95,
+					},
+					{
+						title: "体积(m³)",
+						slot: "volume",
+						align: "center",
+						minWidth: 95,
+					},
+					{
+						title: "操作",
+						slot: "action",
+						// fixed: "right",
+						align: "center",
+						minWidth: 140,
+					},
+				],
+				columns: [],
+				columnsInstall: [],
+				columnsInstal2: [],
+				gridPic: {
+					xl: 6,
+					lg: 8,
+					md: 12,
+					sm: 12,
+					xs: 12,
+				},
+				gridBtn: {
+					xl: 4,
+					lg: 8,
+					md: 8,
+					sm: 8,
+					xs: 8,
+				},
+				formValidate: {
+					supplier_id: 0, //供应商
+					// is_presale_product: 0, //预售商品开关
+					is_limit: 0, //是否限购开关
+					limit_type: 1, //1单次限购,2长期限购
+					limit_num: 1, //限购数量
+					// is_vip_product: 0, //付费会员专属开关
+					// is_support_refund:0,
+					disk_info: "", //卡密简介
+					// presale_day: 1, //预售发货时间-结束
+					// presale_time:[],
+					auto_on_time: '',
+					video_open: false, //视频按钮是否显示
+					store_name: "",
+					freight: 1, //运费设置
+					postage: 0, //设置运费金额
+					custom_form: [], //自定义留言
+					system_form_id: 0, //自定义表单id
+					cate_id: [],
+					// label_id: [],
+					ensure_id: [],
+					keyword: "",
+					unit_name: "",
+					specs_id: 0,
+					store_info: "",
+					bar_code: "",
+					code: "",
+					image: "",
+					recommend_image: "",
+					slider_image: [],
+					description: "",
+					ficti: 0,
+					sort: 0,
+					is_show: 1,
+					is_hot: 0,
+					is_benefit: 0,
+					is_best: 0,
+					is_new: 0,
+					is_good: 0,
+					is_postage: 0,
+					// is_sub: [],
+					id: 0,
+					spec_type: 0,
+					video_link: "",
+					temp_id: "",
+					attrs: [],
+					items: [{
+						pic: "",
+						price: 0,
+						cost: 0,
+						ot_price: 0,
+						stock: 0,
+						bar_code: "",
+						code: "",
+					}, ],
+					// activity: ["默认", "秒杀", "砍价", "拼团"],
+					// couponName: [],
+					header: [],
+					selectRule: "",
+					coupon_ids: [],
+					command_word: "",
+					delivery_type: ["1"],
+					specs: [],
+					recommend_list: [],
+					brand_id: [],
+					product_type: 0
+				},
+				ruleList: [],
+				templateList: [],
+				createBnt: false,
+				showIput: false,
+				manyFormValidate: [],
+				// 单规格表格data
+				oneFormValidate: [{
+					pic: "",
+					price: 0,
+					settle_price: 0,
+					cost: 0,
+					ot_price: 0,
+					stock: 0,
+					bar_code: "",
+					code: "",
+					weight: 0,
+					volume: 0,
+					brokerage: 0,
+					brokerage_two: 0,
+					vip_price: 0,
+					virtual_list: []
+				}, ],
+				images: [],
+				imagesTable: "",
+				currentTab: "1",
+				isChoice: "",
+				grid: {
+					xl: 8,
+					lg: 8,
+					md: 12,
+					sm: 24,
+					xs: 24,
+				},
+				loading: false,
+				modalPic: false,
+				template: false,
+				uploadList: [],
+				treeSelect: [],
+				labelSelect: [],
+				ensureData: [],
+				specsData: [],
+				picTit: "",
+				tableIndex: 0,
+				ruleValidate: {
+					store_name: [{
+						required: true,
+						message: "请输入商品名称",
+						trigger: "blur"
+					}, ],
+					cate_id: [{
+						required: true,
+						message: "请选择商品分类",
+						trigger: "change",
+						type: "array"
+					}, ],
+					keyword: [{
+						required: true,
+						message: "请输入商品关键字",
+						trigger: "blur"
+					}, ],
+					unit_name: [{
+						required: true,
+						message: "请输入单位",
+						trigger: "change",
+					}, ],
+					store_info: [{
+						required: true,
+						message: "请输入商品简介",
+						trigger: "blur"
+					}, ],
+					//image: [{ required: true, message: "请上传商品图", trigger: "change" }],
+					slider_image: [{
+						required: true,
+						message: "请上传商品轮播图",
+						type: "array",
+						trigger: "change",
+					}, ],
+					spec_type: [{
+						required: true,
+						message: "请选择商品规格",
+						trigger: "change"
+					}, ],
+					selectRule: [{
+						required: true,
+						message: "请选择商品规格属性",
+						trigger: "change"
+					}, ]
+				},
+				manyBrokerage: 0,
+				manyBrokerageTwo: 0,
+				manyVipPrice: 0,
+				upload: {
+					videoIng: false, // 是否显示进度条;
+				},
+				videoIng: false, // 是否显示进度条;
+				progress: 0, // 进度条默认0
+				videoLink: "",
+				attrs: [],
+				// activity: { 默认: "colorBlue", 秒杀: "colorBlue", 砍价: "colorBlue", 拼团: "colorBlue" },
+				// couponName: [],
+				updateIds: [],
+				updateName: [],
+				rakeBack: [{
+						title: "一级返佣",
+						slot: "brokerage",
+						align: "center",
+						width: 95,
+					},
+					{
+						title: "二级返佣",
+						slot: "brokerage_two",
+						align: "center",
+						width: 95,
+					},
+				],
+				member: [{
+					title: "会员价",
+					slot: "vip_price",
+					align: "center",
+					width: 95,
+				}, ],
+				headerCarMy: {
+					title: "卡密设置",
+					slot: "fictitious",
+					align: "center",
+					width: 95,
+				},
+				columnsInstalM: [],
+				moveIndex: "",
+				goodsData: [],
+				brandData: [],
+				unitNameList: [],
+				formBrand: {},
+				attrsList: [],
+				activeAtter: [],
+				tabIndex: 0,
+				tabName: "",
+				attrData: [],
+				datePickerOptions: {
+					disabledDate(date) {
+						return date && date.valueOf() < Date.now() - 86400000;
+					}
+				},
+				openErp: false,
+				formList: []
+			};
+		},
+		computed: {
+			...mapState("admin/layout", ["isMobile", "menuCollapse"]),
+			labelWidth() {
+				return this.isMobile ? undefined : 120;
+			},
+			labelPosition() {
+				return this.isMobile ? "top" : "right";
+			},
+			labelBottom() {
+				return this.isMobile ? undefined : 15;
+			},
+			startPickOptions() {
+				const that = this;
+				return {
+					disabledDate(time) {
+						if (that.formValidate.auto_off_time) {
+							return (
+								time.getTime() > new Date(that.formValidate.auto_off_time).getTime() - 86400000
+							)
+						}
+						return ''
+					}
+				}
+			},
+			endPickOptions() {
+				const that = this;
+				return {
+					disabledDate(time) {
+						if (that.formValidate.is_show == '1') {
+							return time.getTime() < Date.now();
+						}
+						if (that.formValidate.auto_on_time) {
+							return (
+								time.getTime() < new Date(that.formValidate.auto_on_time).getTime() + 86400000
+							)
+						}
+						return ''
+					}
+				}
+			},
+			changeUnit() {
+				const {
+					unitNameList
+				} = this;
+				const {
+					unit_name
+				} = this.formValidate;
+				return {
+					unitNameList,
+					unit_name
+				};
+			}
+		},
+		watch: {
+			changeUnit({
+				unitNameList,
+				unit_name
+			}) {
+				if (!unit_name) {
+					return;
+				}
+				let result = unitNameList.find(unit => unit.name == unit_name);
+				if (!result) {
+					this.formValidate.unit_name = '';
+				}
+			}
+		},
+		created() {
+			this.columns = this.columns2.slice(1, 10);
+			let data = JSON.parse(JSON.stringify(this.columns2));
+			data.splice(8, 2, this.headerCarMy);
+			this.columnsCarMy = data;
+			let fictitious = JSON.parse(JSON.stringify(this.columns2));
+			fictitious.splice(8, 2);
+			this.columnsFictitious = fictitious;
+			this.getToken();
+			this.getErpConfig();
+			// this.columnsInstall = this.columns2.slice(0, 4).concat(this.columnsInstall);
+			// this.columnsInsta8 = this.columns2.slice(0, 4).concat(this.columnsInsta8);
+		},
+		mounted() {
+			this.setCopyrightShow({
+				value: false
+			});
+			if ((this.$route.params.id !== "0" && this.$route.params.id) || this.$route.query.copy) {
+				this.getInfo();
+			} else if (this.$route.params.id === "0") {
+				productCache()
+					.then((res) => {
+						let data = res.data.info;
+						if (!Array.isArray(data)) {
+							let cate_id = data.cate_id.map(Number);
+							// let label_id = data.label_id.map(Number);
+							this.attrs = data.items || [];
+							let ids = [];
+							// let names = [];
+							// if (data.coupons) {
+							//     data.coupons.map((item) => {
+							//         ids.push(item.id);
+							//     });
+							//     this.couponName = data.coupons;
+							// }
+							let brandIds = [];
+							data.brand_id.forEach(item => {
+								brandIds.push(item.toString())
+							})
+							this.formValidate = data;
+							this.formTypeList = data.custom_form_info || [];
+							this.formValidate.brand_id = brandIds;
+							// this.couponName = data.coupons;
+							// that.couponName = names;
+							this.formValidate.coupon_ids = ids;
+							this.formValidate.is_limit = this.formValidate.is_limit ? 1 : 0;
+							this.formValidate.limit_type = parseInt(this.formValidate.limit_type);
+							// this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
+							this.updateIds = ids;
+							this.updateName = data.coupons;
+							this.formValidate.cate_id = cate_id;
+							// this.dataLabel = data.label_id;
+							this.storeDataLabel = data.store_label_id;
+							this.specsList = data.specs;
+							this.oneFormValidate = data.attrs;
+							this.formValidate.header = [];
+							this.generate(0);
+							// this.addmanyData(data.attrs);
+							// this.productTypeTap(2);
+							this.columns = this.columns2.slice(1, 10);
+							//this.manyFormValidate = data.attrs;
+							this.formValidate.system_form_id = data.system_form_id || 0;
+							if (this.formValidate.system_form_id) {
+								this.customBtn = true;
+							}
+							this.spec_type = data.spec_type;
+							if (data.spec_type === 0) {
+								this.manyFormValidate = [];
+							} else {
+								this.createBnt = true;
+								this.oneFormValidate = [{
+									pic: data.slider_image[0],
+									price: 0,
+									settle_price: 0,
+									cost: 0,
+									ot_price: 0,
+									stock: 0,
+									bar_code: "",
+									code: "",
+									weight: 0,
+									volume: 0,
+									brokerage: 0,
+									brokerage_two: 0,
+									vip_price: 0,
+									virtual_list: [],
+								}, ];
+							}
+							this.spinShow = false;
+						}
+					})
+					.catch((err) => {
+						this.$Message.error(err.msg);
+					});
+			}
+			if (this.$route.query.type) {
+				this.modals = true;
+				this.type = this.$route.query.type;
+			} else {
+				this.type = 0;
+			}
+			this.goodsCategory();
+			this.productGetRule();
+			this.productGetTemplate();
+			this.getBrandList();
+			this.getAllUnit();
+			this.uploadType();
+			this.getProductAllEnsure();
+			this.getProductAllSpecs();
+			this.getAllSystemForm();
+			this.shelves_lst();
+		},
+		destroyed() {
+			this.setCopyrightShow({
+				value: true
+			});
+		},
+		methods: {
+			...mapMutations('admin/layout', [
+				'setCopyrightShow'
+			]),
+			// 获取货架列表
+			shelves_lst() {
+				shelves_lst().then((res) => {
+					this.levelList = res.data;
+					console.log(res)
+				});
+			},
+			changeForm(e) {
+				this.getSystemFormInfo(e, {
+					type: 1
+				});
+			},
+			getSystemFormInfo(e, data) {
+				systemFormInfo(e, data).then(res => {
+					this.formTypeList = res.data.info;
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			getAllSystemForm() {
+				allSystemForm().then(res => {
+					this.formList = res.data;
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			limitTap(e) {
+				if (e) {
+					this.formValidate.limit_type = (this.formValidate.is_limit && !this.formValidate.limit_type) ? 1 : 0
+					this.formValidate.limit_num = (this.formValidate.is_limit && this.formValidate.limit_num == 0) ? 1 : 0
+				} else {
+					this.formValidate.limit_type = 0;
+					this.formValidate.limit_num = 0;
+				}
+			},
+			//erp配置
+			getErpConfig() {
+				erpConfig().then(res => {
+					this.openErp = res.data.open_erp;
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			delSpecs(index) {
+				this.specsList.splice(index, 1);
+			},
+			addSpecs() {
+				let obj = {
+					'name': '',
+					'value': '',
+					'sort': 0
+				}
+				this.specsList.push(obj)
+			},
+			specsInfo(e) {
+				this.specsData.forEach(item => {
+					if (item.id == e) {
+						this.specsList = item.specs
+					}
+				})
+			},
+			getProductAllSpecs() {
+				productAllSpecs().then(res => {
+					this.specsData = res.data
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			getProductAllEnsure() {
+				productAllEnsure().then(res => {
+					this.ensureData = res.data
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			//添加倒入卡密的值
+			changeVirtual(e) {
+				this.virtualList = this.virtualList.concat(e);
+			},
+			//添加卡密
+			addVirtual(index, name) {
+				this.tabIndex = index;
+				this.tabName = name;
+				this.virtualListClear();
+				this.$refs.addCarMy.fixedCar = {
+					disk_info: '',
+					stock: 0
+				}
+				this.$refs.addCarMy.cartMyType = 1;
+				this.carMyShow = true;
+			},
+			//确认提交卡密
+			fixdBtn(e) {
+				if (e.cartMyType == 1) {
+					this.$set(this[this.tabName][this.tabIndex], "disk_info", e.disk_info);
+					this.$set(this[this.tabName][this.tabIndex], "stock", Number(e.stock));
+					this[this.tabName][this.tabIndex].virtual_list = [];
+				} else {
+					this.$set(this[this.tabName][this.tabIndex], "virtual_list", e.virtualList);
+					this.$set(this[this.tabName][this.tabIndex], "stock", e.virtualList.length);
+					this[this.tabName][this.tabIndex].disk_info = '';
+				}
+				this.carMyShow = false;
+			},
+			closeCarMy() {
+				this.carMyShow = false;
+			},
+			//清空卡密
+			virtualListClear() {
+				this.virtualList = [{
+					key: "",
+					value: "",
+				}, ];
+			},
+			seeVirtual(data, name, index) {
+				this.tabName = name;
+				this.tabIndex = index;
+				this.virtualListClear();
+				this.$refs.addCarMy.fixedCar = {
+					disk_info: '',
+					stock: 0
+				}
+				if (data.virtual_list && data.virtual_list.length) {
+					this.$refs.addCarMy.cartMyType = 2;
+					this.virtualList = data.virtual_list;
+				} else if (data.disk_info) {
+					this.$refs.addCarMy.cartMyType = 1;
+					this.$refs.addCarMy.fixedCar.disk_info = data.disk_info;
+					this.$refs.addCarMy.fixedCar.stock = data.stock;
+				}
+				this.carMyShow = true;
+			},
+			//动态添加组件
+			addAssembly() {
+				this.formValidate.custom_form.push({
+					title: "",
+					label: "text",
+					value: "",
+					status: 0,
+				});
+			},
+			customMessBtn(e) {
+				if (!e) {
+					this.formValidate.system_form_id = 0;
+				}
+			},
+			addcustom() {
+				if (this.formValidate.custom_form.length > 9) {
+					this.$Message.warning("最多添加10条");
+				} else {
+					this.addAssembly();
+				}
+			},
+			delcustom(index) {
+				this.formValidate.custom_form.splice(index, 1);
+			},
+			// 预售具体日期
+			// onchangeTime(e) {
+			//     this.formValidate.presale_time = e;
+			// },
+			//定时上架
+			onchangeShow(e) {
+				this.formValidate.auto_on_time = e
+			},
+			//定时下架
+			onchangeOff(e) {
+				this.formValidate.auto_off_time = e
+			},
+			//打开属性
+			batchAttr() {
+				this.attrShow = true;
+				// if(!this.activeAtter.length){
+				//  let data = this.attrs;
+				//  data.map(el=>{
+				//  			el.details = [];
+				//  	el.detail.map(label=>{
+				//  		el.details.push({
+				//  			name:label,
+				//  			select:false
+				//  		})
+				//  	})
+				//  })
+				//  this.attrsList = data;
+				// }
+			},
+			//获取属性
+			getAttr() {
+				this.oneFormBatch[0].attr = '全部';
+				let data = this.attrs;
+				data.map(el => {
+					el.details = [];
+					el.detail.map(label => {
+						el.details.push({
+							name: label,
+							select: false
+						})
+					})
+				})
+				this.attrsList = data;
+			},
+			//选中属性
+			activeAttr(e) {
+				this.attrsList = e;
+			},
+			//关闭属性弹窗
+			labelAttr() {
+				this.attrShow = false;
+			},
+			//多属性为空
+			manyEmpty(j) {
+				j.pic = '';
+				j.price = 0;
+				j.settle_price = 0;
+				j.cost = 0;
+				j.ot_price = 0;
+				j.stock = 0;
+				j.bar_code = '';
+				j.code = '';
+				j.weight = 0;
+				j.volume = 0;
+				j.virtual_list = []
+			},
+
+
+			doCombination(arr) {
+				var count = arr.length - 1; //数组长度(从0开始)
+				var tmp = [];
+				var totalArr = []; // 总数组
+
+				return doCombinationCallback(arr, 0); //从第一个开始
+				//js 没有静态数据,为了避免和外部数据混淆,需要使用闭包的形式
+				function doCombinationCallback(arr, curr_index) {
+					for (let val of arr[curr_index]) {
+						tmp[curr_index] = val; //以curr_index为索引,加入数组
+						//当前循环下标小于数组总长度,则需要继续调用方法
+						if (curr_index < count) {
+							doCombinationCallback(arr, curr_index + 1); //继续调用
+						} else {
+							totalArr.push(tmp.join(',')); //(直接给push进去,push进去的不是值,而是值的地址)
+						}
+
+						//js  对象都是 地址引用(引用关系),每次都需要重新初始化,否则 totalArr的数据都会是最后一次的 tmp 数据;
+						let oldTmp = tmp;
+						tmp = [];
+						for (let index of oldTmp) {
+							tmp.push(index);
+						}
+					}
+					return totalArr;
+				}
+			},
+
+			//提交属性值;
+			subAttrs(e) {
+				let selectData = [];
+				this.attrsList.forEach((el, index) => {
+					let obj = [];
+					el.details.forEach((label) => {
+						if (label.select) {
+							obj.push(label.name);
+						}
+					})
+					if (obj.length) {
+						selectData.push(obj)
+					}
+				})
+				let newData = [];
+				if (selectData.length) {
+					newData = this.doCombination(selectData);
+				}
+				this.attrShow = false;
+				this.activeAtter = selectData;
+				this.oneFormBatch[0].attr = newData.length ? newData.join(';') : '全部';
+				this.manyFormValidate.forEach(j => {
+					j.select = false;
+					if (newData.length) {
+						newData.forEach(item => {
+							if (j.values.split('').length == item.split('').length) {
+								if (j.values == item) {
+									j.select = true;
+								}
+							} else {
+								if (j.values.indexOf(item) != -1) {
+									j.select = true;
+								}
+							}
+						})
+					} else {
+						j.select = true;
+					}
+				})
+				this.$set(this, 'manyFormValidate', this.manyFormValidate)
+			},
+			goodsOn(e) {
+				if (e == 0 || e == 1) {
+					this.formValidate.auto_on_time = '';
+				}
+			},
+			goodsOff(e) {
+				if (!e) {
+					this.formValidate.auto_off_time = '';
+				}
+			},
+			addBrand() {
+				this.$refs.menusFrom.modals = true
+				this.$refs.menusFrom.titleFrom = "添加品牌分类"
+				this.formBrand = {
+					sort: 0,
+					is_show: 1
+				}
+				this.formBrand.fid = [0];
+				this.$refs.menusFrom.type = 1
+			},
+			getAllUnit() {
+				productAllUnit().then(res => {
+					this.unitNameList = res.data;
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			addClass() {
+				this.$modalForm(productCreateApi()).then(() => this.goodsCategory());
+			},
+			addUnit() {
+				this.$modalForm(productUnitCreate()).then(() => this.getAllUnit());
+			},
+			addStoreLabel() {
+				this.$modalForm(productLabelAdd()).then(() => {});
+			},
+			productTypeTap(num, item) {
+				if (num == 1) {
+					if (this.$route.params.id) return this.$Message.error('商品类型不能切换!');
+					this.formValidate.product_type = item.id;
+				}
+				if (this.formValidate.product_type) {
+					this.headTab = [{
+							title: "基础信息",
+							name: "1"
+						},
+						{
+							title: "规格库存",
+							name: "2"
+						},
+						{
+							title: "商品详情",
+							name: "3"
+						},
+						{
+							title: "其他设置",
+							name: "4"
+						},
+					]
+					this.formValidate.postage = 0;
+					this.formValidate.supplier_id = 0;
+				} else {
+					this.headTab = [{
+							title: "基础信息",
+							name: "1"
+						},
+						{
+							title: "规格库存",
+							name: "2"
+						},
+						{
+							title: "商品详情",
+							name: "3"
+						},
+						{
+							title: "其他设置",
+							name: "4"
+						},
+					]
+				}
+			},
+			// closeLabel(label){
+			//     let index = this.dataLabel.indexOf(this.dataLabel.filter(d=>d.id == label.id)[0]);
+			//     this.dataLabel.splice(index,1);
+			// },
+			// activeData(dataLabel){
+			//     this.labelShow = false;
+			//     this.dataLabel = dataLabel;
+			// },
+			// openLabel(row) {
+			//     this.labelShow = true;
+			//     this.$refs.userLabel.userLabel(JSON.parse(JSON.stringify(this.dataLabel)));
+			// },
+			// 标签弹窗关闭
+			labelClose() {
+				this.labelShow = false;
+			},
+			closeStoreLabel(label) {
+				let index = this.storeDataLabel.indexOf(this.storeDataLabel.filter(d => d.id == label.id)[0]);
+				this.storeDataLabel.splice(index, 1);
+			},
+			activeStoreData(storeDataLabel) {
+				this.storeLabelShow = false;
+				this.storeDataLabel = storeDataLabel;
+			},
+			openStoreLabel(row) {
+				this.storeLabelShow = true;
+				this.$refs.storeLabel.userLabel(JSON.parse(JSON.stringify(this.storeDataLabel)));
+			},
+			// 标签弹窗关闭
+			storeLabelClose() {
+				this.storeLabelShow = false;
+			},
+			// 品牌列表
+			getBrandList() {
+				brandList().then(res => {
+					//initBran()函数作用iview中规定value必须是字符串,后台返回成了数字,用于处理这个,给了个递归;
+					this.initBran(res.data);
+					this.brandData = res.data;
+				}).catch(err => {
+					this.$Message.error(err.msg);
+				})
+			},
+			initBran(data) {
+				data.map(item => {
+					item.value = item.value.toString();
+					if (item.children && item.children.length) {
+						this.initBran(item.children);
+					}
+				})
+			},
+			getProductId(e) {
+				this.goodsModals = false;
+				let nArr = this.goodsData.concat(e).filter((element, index, self) => {
+					return self.findIndex(x => x.product_id == element.product_id) == index
+				})
+
+				this.goodsData = nArr.slice(0, 12);
+			},
+			goodCancel() {
+				this.goodsModals = false;
+			},
+			// goodsTap(){
+			//     this.goodsModals = true;
+			//     this.$refs.goodslist.handleSelectAll();
+			// },
+			// bindDelete (index) {
+			//     this.goodsData.splice(index, 1)
+			// },
+			cancel() {
+				this.$router.push({
+					path: `${Setting.roterPre}/product/index`
+				});
+			},
+
+			videoSaveToUrl(file) {
+				let imgTypeArr = ["video/mp4"];
+				let imgType = imgTypeArr.indexOf(file.type) !== -1
+				if (!imgType) {
+					return this.$Message.warning({
+						content: '文件  ' + file.name + '  格式不正确, 请选择格式正确的视频',
+						duration: 5
+					});
+				}
+				uploadByPieces({
+					randoms: "", // 随机数,这里作为给后端处理分片的标识 根据项目看情况 是否要加
+					file: file, // 视频实体
+					pieceSize: 3, // 分片大小
+					success: (data) => {
+						this.formValidate.video_link = data.file_path;
+						this.progress = 100;
+					},
+					error: (e) => {
+						this.$Message.error(e.msg);
+					},
+					uploading: (chunk, allChunk) => {
+						this.videoIng = true;
+						let st = Math.floor((chunk / allChunk) * 100);
+						this.progress = st;
+					},
+				});
+				return false;
+			},
+
+			// 上传头部token
+			getToken() {
+				this.header["Authori-zation"] = "Bearer " + util.cookies.get("token");
+			},
+			// beforeUpload() {
+			//   this.uploadData = {};
+			//   let promise = new Promise((resolve) => {
+			//     this.$nextTick(function () {
+			//       resolve(true);
+			//     });
+			//   });
+			//   return promise;
+			// },
+			// 上传成功
+			handleSuccess(res, file, fileList) {
+				if (res.status === 200) {
+					this.formValidate.video_link = res.data.src;
+					this.$Message.success(res.msg);
+				} else {
+					this.$Message.error(res.msg);
+				}
+			},
+			//获取视频上传类型
+			uploadType() {
+				uploadType().then((res) => {
+					this.upload_type = res.data.upload_type;
+				});
+			},
+			getEditorContent(data) {
+				this.content = data;
+			},
+			infoData(data) {
+				let cate_id = data.cate_id.map(Number);
+				this.attrs = data.items || [];
+				let ids = [];
+				data.coupons.map((item) => {
+					ids.push(item.id);
+				});
+				this.goodsData = data.recommend_list;
+				if (data.auto_off_time) {
+					this.off_show = 1;
+				} else {
+					this.off_show = 0;
+				}
+				let brandIds = [];
+				data.brand_id.forEach(item => {
+					brandIds.push(item.toString())
+				})
+				this.formValidate = data;
+				this.formTypeList = data.custom_form_info;
+				this.formValidate.brand_id = brandIds;
+				this.formValidate.is_limit = this.formValidate.is_limit ? 1 : 0;
+				this.formValidate.limit_type = parseInt(data.limit_type);
+				// this.formValidate.is_support_refund = parseInt(this.formValidate.is_support_refund);
+				this.contents = data.description;
+				// this.couponName = data.coupons;
+				this.formValidate.coupon_ids = ids;
+				this.updateIds = ids;
+				this.updateName = data.coupons;
+				this.formValidate.cate_id = cate_id;
+				// this.dataLabel = data.label_id;
+				this.storeDataLabel = data.store_label_id;
+				this.specsList = data.specs;
+				if (data.attr) {
+					this.oneFormValidate = [data.attr];
+				}
+				this.formValidate.header = [];
+				this.generate(0);
+				//this.manyFormValidate = data.attrs;
+				// this.addmanyData(data.attrs);
+				// this.productTypeTap(2);
+				this.formValidate.system_form_id = data.system_form_id || 0;
+				if (this.formValidate.system_form_id) {
+					this.customBtn = true;
+				}
+				this.spec_type = data.spec_type;
+				if (data.spec_type === 0) {
+					this.manyFormValidate = [];
+				} else {
+					this.createBnt = true;
+					this.oneFormValidate = [{
+						pic: "",
+						price: 0,
+						settle_price: 0,
+						cost: 0,
+						ot_price: 0,
+						stock: 0,
+						bar_code: "",
+						code: "",
+						weight: 0,
+						volume: 0,
+						brokerage: 0,
+						brokerage_two: 0,
+						vip_price: 0,
+						virtual_list: [],
+					}, ];
+				}
+			},
+			//关闭淘宝弹窗并生成数据;
+			onClose(data) {
+				this.modals = false;
+				this.infoData(data);
+			},
+
+			checkMove(evt) {
+				this.moveIndex = evt.draggedContext.index;
+			},
+			end() {
+				this.moveIndex = "";
+			},
+			// checkAllGroupChange(data) {
+			//     this.checkAllGroup(data);
+			// },
+			// checkAllGroup(data) {
+			//     if (this.formValidate.spec_type === 0) {
+			//         if (data.indexOf(0) > -1) {
+			//             this.columnsInstall = this.columns2.slice(1, 5).concat(this.member);
+			//         } else if (data.indexOf(1) > -1) {
+			//             this.columnsInstall = this.columns2.slice(1, 5).concat(this.rakeBack);
+			//         } else {
+			//             this.columnsInstall = this.columns2.slice(1, 5);
+			//         }
+			//         if (data.length === 2) {
+			//             this.columnsInstall = this.columns2
+			//                 .slice(1, 5)
+			//                 .concat(this.rakeBack)
+			//                 .concat(this.member);
+			//         }
+			//     } else {
+			//         if (data.indexOf(0) > -1) {
+			//             this.columnsInstal2 = this.columnsInstalM
+			//                 .slice(0, 4)
+			//                 .concat(this.member);
+			//         } else if (data.indexOf(1) > -1) {
+			//             this.columnsInstal2 = this.columnsInstalM
+			//                 .slice(0, 4)
+			//                 .concat(this.rakeBack);
+			//         } else {
+			//             this.columnsInstal2 = this.columnsInstalM.slice(0, 4);
+			//         }
+			//         if (data.length === 2) {
+			//             this.columnsInstal2 = this.columnsInstalM
+			//                 .slice(0, 4)
+			//                 .concat(this.rakeBack)
+			//                 .concat(this.member);
+			//         }
+			//     }
+			// },
+			// 添加优惠券
+			// addCoupon() {
+			//     this.$refs.couponTemplates.isTemplate = true;
+			//     this.$refs.couponTemplates.tableList();
+			// },
+			//对象数组去重;
+			unique(arr) {
+				const res = new Map();
+				return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
+			},
+			// nameId(id, names) {
+			//     this.formValidate.coupon_ids = id;
+			//     this.couponName = this.unique(names);
+			// },
+			// handleClose(name) {
+			//     let index = this.couponName.indexOf(name);
+			//     this.couponName.splice(index, 1);
+			//     let couponIds = this.formValidate.coupon_ids;
+			//     couponIds.splice(index, 1);
+			//     this.updateIds = couponIds;
+			//     this.updateName = this.couponName;
+			// },
+			// 运费模板
+			getList() {
+				this.productGetTemplate();
+			},
+			// 添加运费模板
+			addTemp() {
+				this.$refs.templates.isTemplate = true;
+			},
+			//查看、编辑运费模板
+			editTemp() {
+				this.$refs.templates.isTemplate = true;
+				this.$refs.templates.editFrom(this.formValidate.temp_id);
+			},
+			// 删除视频;
+			delVideo() {
+				let that = this;
+				that.$set(that.formValidate, "video_link", "");
+				that.$set(that, "progress", 0);
+				that.videoIng = false;
+				that.upload.videoIng = false;
+			},
+			zh_uploadFile() {
+				if (this.seletVideo == 1) {
+					if (this.videoLink && this.$getFileType(this.videoLink) == 'video') {
+						this.formValidate.video_link = this.videoLink;
+					} else {
+						return this.$Message.error("请输入正确的视频链接")
+					}
+				} else {
+					this.$refs.refid.click();
+				}
+			},
+			zh_uploadFile_change(evfile) {
+				let that = this;
+				let suffix = evfile.target.files[0].name.substr(
+					evfile.target.files[0].name.indexOf(".")
+				);
+				if (suffix.indexOf(".mp4") === -1) {
+					return that.$Message.error("只能上传MP4文件");
+				}
+				let types = {
+					key: evfile.target.files[0].name,
+					contentType: evfile.target.files[0].type,
+				};
+				productGetTempKeysApi(types)
+					.then((res) => {
+						that.$videoCloud
+							.videoUpload({
+								type: res.data.type,
+								evfile: evfile,
+								res: res,
+								uploading(status, progress) {
+									that.upload.videoIng = status;
+									if (res.status == 200) {
+										that.progress = 100;
+									}
+								},
+							})
+							.then((res) => {
+								that.formValidate.video_link = res.url;
+								that.$Message.success("视频上传成功");
+								that.upload.videoIng = false;
+							})
+							.catch((res) => {
+								that.$Message.error(res);
+							});
+					})
+					.catch((res) => {
+						that.$Message.error(res.msg);
+					});
+			},
+			// 上一页;
+			upTab() {
+				if (this.currentTab == 3 && this.formValidate.product_type != 0) {
+					this.currentTab = (Number(this.currentTab) - 2).toString();
+				} else {
+					this.currentTab = (Number(this.currentTab) - 1).toString();
+				}
+			},
+			// 下一页;
+			downTab(name) {
+				this.$refs[name].validate((valid) => {
+					if (valid) {
+						if (this.formValidate.is_show == 2 && !this.formValidate.auto_on_time) {
+							return this.$Message.warning("请填写定时上架时间");
+						}
+						if (this.off_show == 1 && !this.formValidate.auto_off_time) {
+							return this.$Message.warning("请填写定时下架时间");
+						}
+						if (this.currentTab == 3 && this.formValidate.product_type != 0) {
+							this.currentTab = (Number(this.currentTab) + 2).toString();
+						} else {
+							this.currentTab = (Number(this.currentTab) + 1).toString();
+						}
+					} else {
+						this.$Message.warning("请完善数据");
+					}
+				})
+			},
+			// 属性弹窗回调函数;
+			userSearchs() {
+				this.productGetRule();
+			},
+			// 添加规则;
+			addRule() {
+				this.$refs.addattr.modal = true;
+			},
+			// 批量设置分佣;
+			// brokerageSetUp() {
+			//     let that = this;
+			//     if (that.formValidate.is_sub.indexOf(1) > -1) {
+			//         if (that.manyBrokerage <= 0 || that.manyBrokerageTwo <= 0) {
+			//             return that.$Message.error("请填写返佣金额后进行批量添加");
+			//         }
+			//     } else if (that.formValidate.is_sub.indexOf(0) > -1) {
+			//         if (that.manyVipPrice <= 0) {
+			//             return that.$Message.error("请填写会员价后进行批量添加");
+			//         }
+			//     }
+			//     if (this.formValidate.is_sub.length === 2) {
+			//         if (
+			//             that.manyBrokerage <= 0 ||
+			//             that.manyBrokerageTwo <= 0 ||
+			//             that.manyVipPrice <= 0
+			//         ) {
+			//             return that.$Message.error("请填写完金额后进行批量添加");
+			//         }
+			//     }
+			//     for (let val of that.manyFormValidate) {
+			//         this.$set(val, "brokerage", that.manyBrokerage);
+			//         this.$set(val, "brokerage_two", that.manyBrokerageTwo);
+			//         this.$set(val, "vip_price", that.manyVipPrice);
+			//     }
+			// },
+			// 批量设置会员价
+			vipPriceSetUp() {
+				let that = this;
+				if (that.manyVipPrice <= 0) {
+					return that.$Message.error("请填写会员价在进行批量添加");
+				} else {
+					for (let val of that.manyFormValidate) {
+						this.$set(val, "vip_price", that.manyVipPrice);
+					}
+				}
+			},
+			batchDel() {
+				this.oneFormBatch = [{
+					attr: "全部",
+					pic: "",
+					price: 0,
+					settle_price: 0,
+					cost: 0,
+					ot_price: 0,
+					stock: 0,
+					bar_code: "",
+					code: "",
+					weight: 0,
+					volume: 0,
+					virtualList: [],
+					disk_info: ''
+				}, ];
+				this.activeAtter = [];
+				for (let val of this.manyFormValidate) {
+					val.select = true;
+				}
+			},
+			confirm() {
+				let that = this;
+				that.createBnt = true;
+				if (that.formValidate.selectRule.trim().length <= 0) {
+					return that.$Message.error("请选择属性");
+				}
+				that.ruleList.forEach(function(item, index) {
+					if (item.rule_name === that.formValidate.selectRule) {
+						that.attrs = item.rule_value;
+					}
+				});
+			},
+			// 获取商品属性模板;
+			productGetRule() {
+				productGetRuleApi().then((res) => {
+					this.ruleList = res.data;
+				});
+			},
+			// 获取运费模板;
+			productGetTemplate() {
+				productGetTemplateApi().then((res) => {
+					this.templateList = res.data;
+				});
+			},
+			// 删除表格中的属性
+			delAttrTable(index) {
+				let id = this.$route.params.id;
+				if (id) {
+					// checkActivityApi(id)
+					//     .then((res) => {
+					this.manyFormValidate.splice(index, 1);
+					this.$Message.success(res.msg);
+					// })
+					// .catch((res) => {
+					//     this.$Message.error(res.msg);
+					// });
+				} else {
+					this.manyFormValidate.splice(index, 1);
+				}
+			},
+			// 批量添加
+			batchAdd() {
+				for (let val of this.manyFormValidate) {
+					//this.manyEmpty(val);
+					if (val.select) {
+						if (this.oneFormBatch[0].pic) {
+							this.$set(val, "pic", this.oneFormBatch[0].pic);
+						}
+						if (this.oneFormBatch[0].price > 0) {
+							this.$set(val, "price", this.oneFormBatch[0].price);
+						}
+						if (this.oneFormBatch[0].settle_price > 0) {
+							this.$set(val, "settle_price", this.oneFormBatch[0].settle_price);
+						}
+						if (this.oneFormBatch[0].cost > 0) {
+							this.$set(val, "cost", this.oneFormBatch[0].cost);
+						}
+						if (this.oneFormBatch[0].ot_price > 0) {
+							this.$set(val, "ot_price", this.oneFormBatch[0].ot_price);
+						}
+						if (this.oneFormBatch[0].stock > 0) {
+							this.$set(val, "stock", this.oneFormBatch[0].stock);
+						}
+						if (this.oneFormBatch[0].bar_code !== "") {
+							this.$set(val, "bar_code", this.oneFormBatch[0].bar_code);
+						}
+						if (this.oneFormBatch[0].code !== "") {
+							this.$set(val, "code", this.oneFormBatch[0].code);
+						}
+						if (this.oneFormBatch[0].weight > 0) {
+							this.$set(val, "weight", this.oneFormBatch[0].weight);
+						}
+						if (this.oneFormBatch[0].volume > 0) {
+							this.$set(val, "volume", this.oneFormBatch[0].volume);
+						}
+						if (this.formValidate.product_type == 1) {
+							if (this.oneFormBatch[0].virtual_list && this.oneFormBatch[0].virtual_list.length) {
+								this.$set(val, "virtual_list", this.oneFormBatch[0].virtual_list);
+							} else if (this.oneFormBatch[0].disk_info) {
+								this.$refs.addCarMy.cartMyType = 1;
+								this.$set(val, "disk_info", this.oneFormBatch[0].disk_info);
+							}
+						}
+					}
+				}
+			},
+			// 添加按钮
+			addBtn() {
+				this.clearAttr();
+				this.createBnt = false;
+				this.showIput = true;
+			},
+			addmanyData(data) {
+				data.forEach(item => {
+					item.select = true
+				})
+				this.manyFormValidate = data;
+			},
+			// 立即生成
+			generate(type) {
+				generateAttrApi({
+						attrs: this.attrs,
+						product_type: this.formValidate.product_type
+					}, this.formValidate.id, type)
+					.then((res) => {
+						let info = res.data.info,
+							header1 = JSON.parse(JSON.stringify(info.header));
+						if (this.$route.params.id !== "0") {
+							this.addmanyData(info.value);
+						}
+						this.formValidate.header = header1;
+						this.attrData = res.data.info.attr;
+						let header = info.header;
+						header.pop();
+						this.columnsInstalM = info.header;
+						// this.checkAllGroup(this.formValidate.is_sub);
+						if (!this.$route.params.id && this.formValidate.spec_type === 1) {
+							this.manyFormValidate.map((item) => {
+								item.pic = this.formValidate.slider_image[0];
+							});
+							this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
+						} else if (this.$route.params.id) {
+							this.manyFormValidate.map((item) => {
+								if (!item.pic) {
+									item.pic = this.formValidate.slider_image[0];
+								}
+							});
+							this.oneFormBatch[0].pic = this.formValidate.slider_image[0];
+						}
+						this.getAttr();
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			// 取消
+			offAttrName() {
+				this.showIput = false;
+				this.createBnt = true;
+			},
+			clearAttr() {
+				this.formDynamic.attrsName = "";
+				this.formDynamic.attrsVal = "";
+			},
+			// 删除规格
+			handleRemoveRole(index) {
+				this.attrs.splice(index, 1);
+				this.manyFormValidate.splice(index, 1);
+			},
+			// 删除属性
+			handleRemove2(item, index) {
+				item.splice(index, 1);
+			},
+			// 添加规则名称
+			createAttrName() {
+				if (this.formDynamic.attrsName && this.formDynamic.attrsVal) {
+					let data = {
+						value: this.formDynamic.attrsName,
+						detail: [this.formDynamic.attrsVal],
+					};
+					this.attrs.push(data);
+					var hash = {};
+					this.attrs = this.attrs.reduce(function(item, next) {
+						/* eslint-disable */
+						hash[next.value] ? "" : (hash[next.value] = true && item.push(next));
+						return item;
+					}, []);
+					this.clearAttr();
+					this.showIput = false;
+					this.createBnt = true;
+				} else {
+					this.$Message.warning("请添加完整的规格!");
+				}
+			},
+			// 添加属性
+			createAttr(num, idx) {
+				if (num) {
+					this.attrs[idx].detail.push(num);
+					var hash = {};
+					this.attrs[idx].detail = this.attrs[idx].detail.reduce(function(
+							item,
+							next
+						) {
+							/* eslint-disable */
+							hash[next] ? "" : (hash[next] = true && item.push(next));
+							return item;
+						},
+						[]);
+				} else {
+					this.$Message.warning("请添加属性");
+				}
+			},
+			// 商品分类;
+			goodsCategory() {
+				cascaderList(1)
+					.then((res) => {
+						this.treeSelect = res.data;
+					})
+					.catch((res) => {
+						this.$Message.error(res.msg);
+					});
+			},
+			//视视上传类型
+			changeVideo(e) {
+				this.formValidate.video_link = "";
+				this.videoLink = "";
+			},
+			// 改变规格
+			changeSpec() {
+				// this.formValidate.is_sub = [];
+				// let id = this.$route.params.id;
+				// if (id) {
+				//     checkActivityApi(id)
+				//         .then((res) => {})
+				//         .catch((res) => {
+				//             this.formValidate.spec_type = this.spec_type;
+				//             this.$Message.error(res.msg);
+				//         });
+				// }
+			},
+			// 详情
+			getInfo() {
+				let that = this;
+				that.spinShow = true;
+				productInfoApi(that.$route.params.id || this.$route.query.copy)
+					.then((res) => {
+						let data = res.data.productInfo;
+						this.infoData(data);
+						this.spinShow = false;
+					})
+					.catch((res) => {
+						this.spinShow = false;
+						this.$Message.error(res.msg);
+					});
+			},
+			// tab切换
+			onhangeTab(name) {
+				this.currentTab = name;
+			},
+			handleRemove(i) {
+				this.images.splice(i, 1);
+				this.formValidate.slider_image.splice(i, 1);
+				this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
+			},
+			// 关闭图片上传模态框
+			changeCancel(msg) {
+				this.modalPic = false;
+			},
+			// 点击商品图
+			modalPicTap(tit, picTit, index) {
+				this.modalPic = true;
+				this.isChoice = tit === "dan" ? "单选" : "多选";
+				this.picTit = picTit;
+				this.tableIndex = index;
+			},
+			// 获取单张图片信息
+			getPic(pc) {
+				switch (this.picTit) {
+					case "danFrom":
+						this.formValidate.image = pc.att_dir;
+						if (!this.$route.params.id) {
+							if (this.formValidate.spec_type === 0) {
+								this.oneFormValidate[0].pic = pc.att_dir;
+							} else {
+								this.manyFormValidate.map((item) => {
+									item.pic = pc.att_dir;
+								});
+								this.oneFormBatch[0].pic = pc.att_dir;
+							}
+						}
+						break;
+					case "danTable":
+						this.oneFormValidate[this.tableIndex].pic = pc.att_dir;
+						break;
+					case "duopi":
+						this.oneFormBatch[this.tableIndex].pic = pc.att_dir;
+						break;
+					case "recommend_image":
+						this.formValidate.recommend_image = pc.att_dir;
+						break;
+					default:
+						this.manyFormValidate[this.tableIndex].pic = pc.att_dir;
+				}
+				this.modalPic = false;
+			},
+			// 获取多张图信息
+			getPicD(pc) {
+				this.images = pc;
+				this.images.map((item) => {
+					this.formValidate.slider_image.push(item.att_dir);
+					this.formValidate.slider_image = this.formValidate.slider_image.splice(
+						0,
+						10
+					);
+				});
+				this.oneFormValidate[0].pic = this.formValidate.slider_image[0];
+				this.modalPic = false;
+			},
+			// 提交
+			handleSubmit(name) {
+				this.$refs[name].validate((valid) => {
+					if (valid) {
+						if (!this.formValidate.store_name.trim()) {
+							return this.$Message.warning("基础信息-商品名称不能为空");
+						}
+						if (this.formValidate.is_show == 2 && !this.formValidate.auto_on_time) {
+							return this.$Message.warning("基础信息-定时上架时间不能为空");
+						}
+						if (this.off_show == 1 && !this.formValidate.auto_off_time) {
+							return this.$Message.warning("基础信息-定时下架时间不能为空");
+						}
+						if (this.formValidate.freight == 2 && this.formValidate.product_type == 0 && this
+							.formValidate.postage <= 0) {
+							return this.$Message.warning("物流设置-固定邮费不能为0");
+						}
+						if (this.formValidate.freight == 3 && this.formValidate.product_type == 0 && !this
+							.formValidate.temp_id) {
+							return this.$Message.warning("物流设置-运费模板不能为空");
+						}
+						if (this.currentTab == 4 && !this.formValidate.delivery_type.length) {
+							return this.$Message.warning("请选择配送方式");
+						}
+						// if(this.formValidate.product_type==0&&this.formValidate.is_presale_product&&!this.formValidate.presale_time[0]){
+						//     return this.$Message.warning("营销设置-预售时间不能为空");
+						// }
+						// for (let i = 0; i < this.formValidate.custom_form.length; i++) {
+						//     const element = this.formValidate.custom_form[i];
+						//     if (!element.title) {
+						//         return this.$Message.warning("其他设置-留言标题不能为空");
+						//     }
+						// }
+						if (this.customBtn && this.formValidate.system_form_id == 0) {
+							return this.$Message.warning('其他设置-请选择自定义表单模板');
+						}
+						this.formValidate.type = this.type;
+						if (this.formValidate.spec_type === 0) {
+							this.formValidate.attrs = this.oneFormValidate;
+							this.formValidate.header = [];
+							this.formValidate.items = [];
+						} else {
+							this.formValidate.items = this.attrs;
+							this.formValidate.attrs = this.manyFormValidate;
+						}
+						if (
+							this.formValidate.spec_type === 1 &&
+							this.manyFormValidate.length === 0
+						) {
+							return this.$Message.warning("规格库存-请点击生成多规格");
+							// return this.$Message.warning('请点击生成规格!');
+						}
+						let item = this.formValidate.attrs;
+						// if ( this.formValidate.is_sub.indexOf(1) != -1 ) {
+						//     for (let i = 0; i < item.length; i++) {
+						//         if (
+						//             item[i].brokerage === null ||
+						//             item[i].brokerage_two === null
+						//         ) {
+						//             return this.$Message.warning("营销设置- 一二级返佣不能为空");
+						//         }
+						//     }
+						// }
+						// if(this.formValidate.is_sub.indexOf(0) != -1){
+						//     for (let i = 0; i < item.length; i++) {
+						//         if (item[i].vip_price === null) {
+						//             return this.$Message.warning("营销设置-会员价不能为空");
+						//         }
+						//         if (item[i].vip_price === 0) {
+						//             return this.$Message.warning("营销设置-会员价不能为0");
+						//         }
+						//     }
+						// }
+						// if (this.formValidate.is_sub.length === 2) {
+						//     for (let i = 0; i < item.length; i++) {
+						//         if (
+						//             item[i].brokerage === null ||
+						//             item[i].brokerage_two === null ||
+						//             item[i].vip_price === null
+						//         ) {
+						//             return this.$Message.error(
+						//                 "营销设置- 一二级返佣和会员价不能为空"
+						//             );
+						//         }
+						//     }
+						// }
+						for (let i = 0; i < this.specsList.length; i++) {
+							let data = this.specsList[i];
+							if (!data.name.trim()) {
+								return this.$Message.error('请输入参数名称');
+							}
+							if (!data.value.trim()) {
+								return this.$Message.error('请输入参数值');
+							}
+						}
+						// if(!this.formValidate.product_type){
+						//     this.formValidate.is_support_refund = 1;
+						// }
+						this.openSubimit = false;
+						this.formValidate.description = this.formatRichText(this.content);
+						let goodsId = [];
+						this.goodsData.forEach(item => {
+							goodsId.push(item.product_id)
+						})
+						this.formValidate.recommend_list = goodsId;
+						// 用户标签
+						// let activeIds = [];
+						// this.dataLabel.forEach((item)=>{
+						//     activeIds.push(item.id)
+						// });
+						// this.formValidate.label_id = activeIds
+						// 商品标签
+						let storeActiveIds = [];
+						this.storeDataLabel.forEach((item) => {
+							storeActiveIds.push(item.id)
+						});
+						this.formValidate.store_label_id = storeActiveIds
+						// 商品参数
+						this.formValidate.specs = this.specsList;
+						if (this.$route.query.copy) {
+							this.formValidate.id = 0;
+							this.formValidate.soure_link = '';
+						}
+						productAddApi(this.formValidate)
+							.then(async (res) => {
+								this.openSubimit = true;
+								this.$Message.success(res.msg);
+								if (this.$route.params.id === "0") {
+									cacheDelete().catch((err) => {
+										this.$Message.error(err.msg);
+									});
+								}
+								setTimeout(() => {
+									this.$router.push({
+										path: `${Setting.roterPre}/product/index`
+									});
+								}, 500);
+							})
+							.catch((res) => {
+								this.openSubimit = false;
+								this.$Message.error(res.msg);
+							});
+					} else {
+						if (!this.formValidate.store_name) {
+							return this.$Message.warning("基础信息-商品名称不能为空");
+						} else if (!this.formValidate.cate_id.length) {
+							return this.$Message.warning("基础信息-商品分类不能为空");
+						} else if (!this.formValidate.unit_name) {
+							return this.$Message.warning("基础信息-商品单位不能为空");
+						} else if (!this.formValidate.slider_image.length) {
+							return this.$Message.warning("基础信息-商品轮播图不能为空");
+						}
+						//    if(!this.formValidate.store_name || !this.formValidate.cate_id || !this.formValidate.keyword
+						//    || !this.formValidate.unit_name || !this.formValidate.store_info
+						//        || !this.formValidate.image || !this.formValidate.slider_image){
+						//        this.$Message.warning("请填写完整商品信息!");
+						//    }
+					}
+				});
+			},
+			changeTemplate(msg) {
+				this.template = msg;
+			},
+			// 表单验证
+			validate(prop, status, error) {
+				if (status === false) {
+					this.$Message.warning(error);
+				}
+			},
+			// 移动
+			handleDragStart(e, item) {
+				this.dragging = item;
+			},
+			handleDragEnd(e, item) {
+				this.dragging = null;
+			},
+			handleDragOver(e) {
+				e.dataTransfer.dropEffect = "move";
+			},
+			handleDragEnter(e, item) {
+				e.dataTransfer.effectAllowed = "move";
+				if (item === this.dragging) {
+					return;
+				}
+				const newItems = [...this.formValidate.slider_image];
+				const src = newItems.indexOf(this.dragging);
+				const dst = newItems.indexOf(item);
+				newItems.splice(dst, 0, ...newItems.splice(src, 1));
+				this.formValidate.slider_image = newItems;
+			},
+			// 添加自定义弹窗
+			addCustomDialog(editorId) {
+				window.UE.registerUI(
+					"test-dialog",
+					function(editor, uiName) {
+						// 创建 dialog
+						let dialog = new window.UE.ui.Dialog({
+							iframeUrl: "/store/widget.images/index.html?fodder=dialog",
+							editor: editor,
+							name: uiName,
+							title: "上传图片",
+							cssRules: "width:1200px;height:500px;padding:20px;",
+						});
+						this.dialog = dialog;
+						let btn = new window.UE.ui.Button({
+							name: "dialog-button",
+							title: "上传图片",
+							cssRules: `background-image: url(https://cdn.oss.9gt.net/prov1.1/1/icons.png);background-position: -726px -77px;`,
+							onclick: function() {
+								// 渲染dialog
+								dialog.render();
+								dialog.open();
+							},
+						});
+						return btn;
+					},
+					37
+				);
+				window.UE.registerUI(
+					"video-dialog",
+					function(editor, uiName) {
+						let dialog = new window.UE.ui.Dialog({
+							iframeUrl: "/store/widget.video/index.html?fodder=video",
+							editor: editor,
+							name: uiName,
+							title: "上传视频",
+							cssRules: "width:1000px;height:500px;padding:20px;",
+						});
+						this.dialog = dialog;
+						let btn = new window.UE.ui.Button({
+							name: "video-button",
+							title: "上传视频",
+							cssRules: `background-image: url(../../../assets/images/icons.png);background-position: -320px -20px;`,
+							onclick: function() {
+								// 渲染dialog
+								dialog.render();
+								dialog.open();
+							},
+						});
+						return btn;
+					},
+					38
+				);
+			},
+			formatRichText(html) {
+				let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
+					match = match
+						.replace(/style="[^"]+"/gi, "")
+						.replace(/style='[^']+'/gi, "");
+					match = match
+						.replace(/width="[^"]+"/gi, "")
+						.replace(/width='[^']+'/gi, "");
+					match = match
+						.replace(/height="[^"]+"/gi, "")
+						.replace(/height='[^']+'/gi, "");
+					return match;
+				});
+				newContent = newContent.replace(
+					/style="[^"]+"/gi,
+					function(match, capture) {
+						match = match
+							.replace(/width:[^;]+;/gi, "max-width:100%;")
+							.replace(/width:[^;]+;/gi, "max-width:100%;");
+						return match;
+					}
+				);
+				// newContent = newContent.replace(/<br[^>]*\/>/gi, "");
+				newContent = newContent.replace(
+					/\<img/gi,
+					'<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"'
+				);
+				return newContent;
+			},
+		},
+	};
 </script>
 <style scoped lang="stylus">
-.video-style {
-  width: 100%;
-  height: 100% !important;
-  border-radius: 10px;
-}
-.select-add {
-  width: 200px;
-  margin-left: 6px;
-  margin-right: 10px
-}
-.input-display {
-  display: none
-}
-.width-add {
-  width:200px;
-}
-.custom-input {
-  width: 100px;
-  margin-right: 10px
-}
-.asterisk{
-  position relative;
-  .asteriskInfo{
-    position absolute;
-    color #ed4014;
-    left 73px;
-    top 8px;
-    &.on{
-      left:62px;
-    }
-  }
-}
-.specsList {
-  /deep/.ivu-table-header table{
-    border:0!important
-  }
-  /deep/.ivu-table-header thead tr th{
-    padding 0!important
-    background-color #EEEEEE!important;
-  }
-  /deep/.ivu-table-cell{
-    padding 0!important
-  }
-  /deep/.ivu-table-border th, /deep/.ivu-table-border td{
-    border-right unset;
-  }
-  /deep/.ivu-table td{
-    height 59px;
-  }
-  &.on{
-    width 50% !important;
-    /deep/.ivu-table{
-      width 100% !important;
-    }
-    /deep/.ivu-table td{
-      height 40px;
-      padding 0 !important;
-    }
-    /deep/.ivu-table-cell{
-      padding 0 16px !important;
-    }
-  }
-}
-.form-submit {
-  /deep/.ivu-card{
-    border-radius: 0;
-  }
-  margin-bottom: 79px;
-  .fixed-card {
-    position: fixed;
-    right: 0;
-    bottom: 0;
-    left: 200px;
-    z-index: 20;
-    box-shadow: 0 -1px 2px rgb(240, 240, 240);
-
-    /deep/ .ivu-card-body {
-      padding: 15px 16px 14px;
-    }
-
-    .ivu-form-item {
-      margin-bottom: 0;
-    }
-
-    /deep/ .ivu-form-item-content {
-      margin-right: 124px;
-      text-align: center;
-    }
-
-    .ivu-btn {
-      height: 36px;
-      padding: 0 20px;
-    }
-  }
-}
-.seeCatMy {
-  color: #2d8cf0;
-  cursor: pointer;
-}
-.addCustom_content {
-  margin-top: 20px;
-
-  .custom_box {
-    margin-bottom: 10px;
-  }
-
-  .addfont {
-    display: inline-block;
-    font-size: 13px;
-    font-weight: 400;
-    color: #1890FF;
-    cursor: pointer;
-  }
-}
-
-.addCustomBox {
-  margin-top: 12px;
-  font-size: 13px;
-  font-weight: 400;
-  color: #1890FF;
-
-  .btn {
-    cursor: pointer;
-    width: max-content;
-  }
-}
-.checkAlls /deep/.ivu-checkbox-inner{
-  width 14px;
-  height 14px;
-}
-.checkAlls /deep/.ivu-checkbox-wrapper{
-  font-size 12px;
-}
-.lines {
-  border-bottom: 1px dashed #eee;
-  margin-bottom: 20px;
-}
-.iosfont{
-  font-size 20px!important;
-}
-.selectOn{
-  color #2d8cf0;
-}
-.ifam {
-  width: 344px;
-  height: 644px;
-  background: url('../../../assets/images/phonebg.png') no-repeat center top;
-  background-size: 344px 644px;
-  padding: 40px 20px;
-  padding-top: 50px;
-  margin: 0 auto 0 20px;
-
-  .content {
-    height: 560px;
-    overflow: hidden;
-    scrollbar-width: none; /* firefox */
-    -ms-overflow-style: none; /* IE 10+ */
-    overflow-x: hidden;
-    overflow-y: auto;
-  }
-
-  .content::-webkit-scrollbar {
-    display: none; /* Chrome Safari */
-  }
-}
-.offShow{
-  position absolute
-}
-.goodsShow /deep/.ivu-radio-group-vertical .ivu-radio-wrapper{
-  height 35px;
-  line-height 35px;
-}
-.videbox {
-  width: 60px;
-  height: 60px;
-  background: rgba(0, 0, 0, 0.02);
-  border-radius: 4px;
-  border: 1px dashed #DDDDDD;
-  line-height: 50px;
-  text-align: center;
-  color: #898989;
-  font-size: 30px;
-  font-weight: 400;
-  cursor: pointer;
-}
-.brandName{
-  /deep/.ivu-cascader{
-    display inline-block
-  }
-}
-.formValidate{
-  .addClass{
-    color: #1890FF;
-    margin-left 14px;
-    padding 9px 0;
-    cursor pointer;
-  }
-}
-.productType {
-  width: 120px;
-  height: 60px;
-  background: #FFFFFF;
-  border-radius: 3px;
-  border: 1px solid #E7E7E7;
-  float: left;
-  text-align: center;
-  padding-top: 8px;
-  position: relative;
-  cursor: pointer;
-  line-height: 23px;
-  margin-right 12px;
-
-  &.on{
-    border-color #1890FF;
-  }
-
-  .name {
-    font-size: 14px;
-    font-weight: 600;
-    color: rgba(0, 0, 0, 0.85);
-  }
-
-  .title {
-    font-size: 12px;
-    font-weight: 400;
-    color: #999999;
-  }
-
-  .jiao {
-    position: absolute;
-    bottom: 0;
-    right: 0;
-    width: 0;
-    height: 0;
-    border-bottom: 26px solid #1890FF;
-    border-left: 26px solid transparent;
-  }
-
-  .iconfont {
-    position: absolute;
-    bottom: -3px;
-    right: 1px;
-    color: #FFFFFF;
-    font-size 12px;
-  }
-
-}
-.labelInput{
-  border: 1px solid #dcdee2;
-  width 50%;
-  padding 0 5px;
-  border-radius 5px;
-  min-height 30px;
-  cursor pointer;
-  .span{
-    color: #c5c8ce;
-  }
-  .iconxiayi{
-    font-size 12px
-  }
-}
-.labelClass{
-  /deep/.ivu-form-item-content{
-    line-height unset;
-  }
-}
-.ivu-checkbox-wrapper{
-  margin-right 19px;
-}
-.list-group {
-  margin-left: -8px;
-}
-
-.borderStyle {
-  border: 1px solid #ccc;
-  padding: 8px;
-  border-radius: 4px;
-}
-
-.drag {
-  cursor: move;
-}
-
-.move-icon {
-  width: 30px;
-  cursor: move;
-  margin-right: 10px;
-}
-
-.move-icon .icondrag2 {
-  font-size: 26px;
-  color: #d8d8d8;
-}
-
-.maxW /deep/.ivu-select-dropdown {
-  max-width: 600px;
-}
-
-#shopp-manager .ivu-table-wrapper {
-  border-left: 1px solid #dcdee2;
-  border-top: 1px solid #dcdee2;
-}
-
-.noLeft {
-  >>> .ivu-form-item-content {
-    margin-left: 0 !important;
-  }
-}
-
-#shopp-manager .ivu-form-item .tips {
-  display: inline-bolck;
-  font-size: 12px;
-  font-weight: 400;
-  color: #999999;
-  margin-top: 14px;
-}
-
-.iview-video-style {
-  width: 40%;
-  height: 180px;
-  border-radius: 10px;
-  background-color: #707070;
-  margin-top: 10px;
-  position: relative;
-  overflow: hidden;
-}
-
-.iview-video-style .iconv {
-  color: #fff;
-  line-height: 180px;
-  width: 50px;
-  height: 50px;
-  display: inherit;
-  font-size: 26px;
-  position: absolute;
-  top: -74px;
-  left: 50%;
-  margin-left: -25px;
-}
-
-.iview-video-style .mark {
-  position: absolute;
-  width: 100%;
-  height: 30px;
-  top: 0;
-  background-color: rgba(0, 0, 0, 0.5);
-  text-align: center;
-}
-
-.uploadVideo {
-  margin-left: 10px;
-}
-
-.submission {
-  margin-left: 10px;
-}
-.form-submit .fixed-card .ivu-btn {
-  height:32px;
-}
-
-.color-list .tip {
-  color: #c9c9c9;
-}
-
-.color-list .color-item {
-  width 70px;
-  height: 28px;
-  line-height: 28px;
-  color: #fff;
-  margin-right: 10px;
-  border-radius 2px;
-  text-align center
-  .num{
-    color #1890FF;
-    width 14px;
-    height 14px;
-    text-align center;
-    line-height 14px;
-    border-radius 50%;
-    background-color #fff;
-    margin-right 6px;
-  }
-}
-
-.color-list .color-item.blue {
-  background-color: #1E9FFF;
-}
-
-.color-list .color-item.yellow {
-  background-color: rgb(254, 185, 0);
-}
-
-.color-list .color-item.green {
-  background-color: #009688;
-}
-
-.color-list .color-item.red {
-  background-color: #ed4014;
-}
-
-.color-list .color-item.colorBlue {
-  background: linear-gradient(270deg, #5ECFFF 0%, #0084FF 100%);
-}
-
-.columnsBox {
-  margin-right: 10px;
-}
-
-.priceBox {
-  width: 100%;
-}
-
-.rulesBox {
-  display: flex;
-  flex-wrap: wrap;
-}
-
-.pictrueBox {
-  display: inline-block;
-}
-
-.pictrueTab {
-  width: 40px !important;
-  height: 40px !important;
-}
-
-.pictrue {
-  width: 60px;
-  height: 60px;
-  border: 1px dotted rgba(0, 0, 0, 0.1);
-  margin-right: 15px;
-  margin-bottom 10px;
-  display: inline-block;
-  position: relative;
-  cursor: pointer;
-
-  img {
-    width: 100%;
-    height: 100%;
-  }
-
-  .btndel {
-    position: absolute;
-    z-index: 1;
-    width: 20px !important;
-    height: 20px !important;
-    left: 46px;
-    top: -4px;
-  }
-}
-
-.upLoad {
-  width: 58px;
-  height: 58px;
-  line-height: 58px;
-  border: 1px dotted rgba(0, 0, 0, 0.1);
-  border-radius: 4px;
-  background: rgba(0, 0, 0, 0.02);
-  cursor: pointer;
-}
-
-.curs {
-  cursor: pointer;
-}
-
-.inpWith {
-  width: 60%;
-}
-
-.labeltop {
-  >>> .ivu-form-item-label {
-    float: none !important;
-    display: inline-block !important;
-    margin-left: 120px !important;
-    width: auto !important;
-  }
-  .icondrop-down{
-    font-size: 12px;
-    margin-left: 5px;
-  }
-}
-
-.video-icon {
-  background-image: url('https://cdn.oss.9gt.net/prov1.1/1/icons.png'); // cdn.oss.9gt.net/prov1.1/1/icons.png);
-  // background-color: #fff;
-  background-position: -9999px;
-  background-repeat: no-repeat;
-}
-.progress {
-  margin-top: 10px;
-}
-.new_tab {
-  >>>.ivu-tabs-nav .ivu-tabs-tab{
-    padding:4px 16px 20px !important;
-    font-weight: 500;
-  }
-}
+	.video-style {
+		width: 100%;
+		height: 100% !important;
+		border-radius: 10px;
+	}
+
+	.select-add {
+		width: 200px;
+		margin-left: 6px;
+		margin-right: 10px
+	}
+
+	.input-display {
+		display: none
+	}
+
+	.width-add {
+		width: 200px;
+	}
+
+	.custom-input {
+		width: 100px;
+		margin-right: 10px
+	}
+
+	.asterisk {
+		position relative;
+
+		.asteriskInfo {
+			position absolute;
+			color #ed4014;
+			left 73px;
+			top 8px;
+
+			&.on {
+				left: 62px;
+			}
+		}
+	}
+
+	.specsList {
+		/deep/.ivu-table-header table {
+			border: 0 !important
+		}
+
+		/deep/.ivu-table-header thead tr th {
+			padding 0 !important background-color #EEEEEE !important;
+		}
+
+		/deep/.ivu-table-cell {
+			padding 0 !important
+		}
+
+		/deep/.ivu-table-border th,
+		/deep/.ivu-table-border td {
+			border-right unset;
+		}
+
+		/deep/.ivu-table td {
+			height 59px;
+		}
+
+		&.on {
+			width 50% !important;
+
+			/deep/.ivu-table {
+				width 100% !important;
+			}
+
+			/deep/.ivu-table td {
+				height 40px;
+				padding 0 !important;
+			}
+
+			/deep/.ivu-table-cell {
+				padding 0 16px !important;
+			}
+		}
+	}
+
+	.form-submit {
+		/deep/.ivu-card {
+			border-radius: 0;
+		}
+
+		margin-bottom: 79px;
+
+		.fixed-card {
+			position: fixed;
+			right: 0;
+			bottom: 0;
+			left: 200px;
+			z-index: 20;
+			box-shadow: 0 -1px 2px rgb(240, 240, 240);
+
+			/deep/ .ivu-card-body {
+				padding: 15px 16px 14px;
+			}
+
+			.ivu-form-item {
+				margin-bottom: 0;
+			}
+
+			/deep/ .ivu-form-item-content {
+				margin-right: 124px;
+				text-align: center;
+			}
+
+			.ivu-btn {
+				height: 36px;
+				padding: 0 20px;
+			}
+		}
+	}
+
+	.seeCatMy {
+		color: #2d8cf0;
+		cursor: pointer;
+	}
+
+	.addCustom_content {
+		margin-top: 20px;
+
+		.custom_box {
+			margin-bottom: 10px;
+		}
+
+		.addfont {
+			display: inline-block;
+			font-size: 13px;
+			font-weight: 400;
+			color: #1890FF;
+			cursor: pointer;
+		}
+	}
+
+	.addCustomBox {
+		margin-top: 12px;
+		font-size: 13px;
+		font-weight: 400;
+		color: #1890FF;
+
+		.btn {
+			cursor: pointer;
+			width: max-content;
+		}
+	}
+
+	.checkAlls /deep/.ivu-checkbox-inner {
+		width 14px;
+		height 14px;
+	}
+
+	.checkAlls /deep/.ivu-checkbox-wrapper {
+		font-size 12px;
+	}
+
+	.lines {
+		border-bottom: 1px dashed #eee;
+		margin-bottom: 20px;
+	}
+
+	.iosfont {
+		font-size 20px !important;
+	}
+
+	.selectOn {
+		color #2d8cf0;
+	}
+
+	.ifam {
+		width: 344px;
+		height: 644px;
+		background: url('../../../assets/images/phonebg.png') no-repeat center top;
+		background-size: 344px 644px;
+		padding: 40px 20px;
+		padding-top: 50px;
+		margin: 0 auto 0 20px;
+
+		.content {
+			height: 560px;
+			overflow: hidden;
+			scrollbar-width: none;
+			/* firefox */
+			-ms-overflow-style: none;
+			/* IE 10+ */
+			overflow-x: hidden;
+			overflow-y: auto;
+		}
+
+		.content::-webkit-scrollbar {
+			display: none;
+			/* Chrome Safari */
+		}
+	}
+
+	.offShow {
+		position absolute
+	}
+
+	.goodsShow /deep/.ivu-radio-group-vertical .ivu-radio-wrapper {
+		height 35px;
+		line-height 35px;
+	}
+
+	.videbox {
+		width: 60px;
+		height: 60px;
+		background: rgba(0, 0, 0, 0.02);
+		border-radius: 4px;
+		border: 1px dashed #DDDDDD;
+		line-height: 50px;
+		text-align: center;
+		color: #898989;
+		font-size: 30px;
+		font-weight: 400;
+		cursor: pointer;
+	}
+
+	.brandName {
+		/deep/.ivu-cascader {
+			display inline-block
+		}
+	}
+
+	.formValidate {
+		.addClass {
+			color: #1890FF;
+			margin-left 14px;
+			padding 9px 0;
+			cursor pointer;
+		}
+	}
+
+	.productType {
+		width: 120px;
+		height: 60px;
+		background: #FFFFFF;
+		border-radius: 3px;
+		border: 1px solid #E7E7E7;
+		float: left;
+		text-align: center;
+		padding-top: 8px;
+		position: relative;
+		cursor: pointer;
+		line-height: 23px;
+		margin-right 12px;
+
+		&.on {
+			border-color #1890FF;
+		}
+
+		.name {
+			font-size: 14px;
+			font-weight: 600;
+			color: rgba(0, 0, 0, 0.85);
+		}
+
+		.title {
+			font-size: 12px;
+			font-weight: 400;
+			color: #999999;
+		}
+
+		.jiao {
+			position: absolute;
+			bottom: 0;
+			right: 0;
+			width: 0;
+			height: 0;
+			border-bottom: 26px solid #1890FF;
+			border-left: 26px solid transparent;
+		}
+
+		.iconfont {
+			position: absolute;
+			bottom: -3px;
+			right: 1px;
+			color: #FFFFFF;
+			font-size 12px;
+		}
+
+	}
+
+	.labelInput {
+		border: 1px solid #dcdee2;
+		width 50%;
+		padding 0 5px;
+		border-radius 5px;
+		min-height 30px;
+		cursor pointer;
+
+		.span {
+			color: #c5c8ce;
+		}
+
+		.iconxiayi {
+			font-size 12px
+		}
+	}
+
+	.labelClass {
+		/deep/.ivu-form-item-content {
+			line-height unset;
+		}
+	}
+
+	.ivu-checkbox-wrapper {
+		margin-right 19px;
+	}
+
+	.list-group {
+		margin-left: -8px;
+	}
+
+	.borderStyle {
+		border: 1px solid #ccc;
+		padding: 8px;
+		border-radius: 4px;
+	}
+
+	.drag {
+		cursor: move;
+	}
+
+	.move-icon {
+		width: 30px;
+		cursor: move;
+		margin-right: 10px;
+	}
+
+	.move-icon .icondrag2 {
+		font-size: 26px;
+		color: #d8d8d8;
+	}
+
+	.maxW /deep/.ivu-select-dropdown {
+		max-width: 600px;
+	}
+
+	#shopp-manager .ivu-table-wrapper {
+		border-left: 1px solid #dcdee2;
+		border-top: 1px solid #dcdee2;
+	}
+
+	.noLeft {
+		>>>.ivu-form-item-content {
+			margin-left: 0 !important;
+		}
+	}
+
+	#shopp-manager .ivu-form-item .tips {
+		display: inline-bolck;
+		font-size: 12px;
+		font-weight: 400;
+		color: #999999;
+		margin-top: 14px;
+	}
+
+	.iview-video-style {
+		width: 40%;
+		height: 180px;
+		border-radius: 10px;
+		background-color: #707070;
+		margin-top: 10px;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.iview-video-style .iconv {
+		color: #fff;
+		line-height: 180px;
+		width: 50px;
+		height: 50px;
+		display: inherit;
+		font-size: 26px;
+		position: absolute;
+		top: -74px;
+		left: 50%;
+		margin-left: -25px;
+	}
+
+	.iview-video-style .mark {
+		position: absolute;
+		width: 100%;
+		height: 30px;
+		top: 0;
+		background-color: rgba(0, 0, 0, 0.5);
+		text-align: center;
+	}
+
+	.uploadVideo {
+		margin-left: 10px;
+	}
+
+	.submission {
+		margin-left: 10px;
+	}
+
+	.form-submit .fixed-card .ivu-btn {
+		height: 32px;
+	}
+
+	.color-list .tip {
+		color: #c9c9c9;
+	}
+
+	.color-list .color-item {
+		width 70px;
+		height: 28px;
+		line-height: 28px;
+		color: #fff;
+		margin-right: 10px;
+		border-radius 2px;
+
+		text-align center .num {
+			color #1890FF;
+			width 14px;
+			height 14px;
+			text-align center;
+			line-height 14px;
+			border-radius 50%;
+			background-color #fff;
+			margin-right 6px;
+		}
+	}
+
+	.color-list .color-item.blue {
+		background-color: #1E9FFF;
+	}
+
+	.color-list .color-item.yellow {
+		background-color: rgb(254, 185, 0);
+	}
+
+	.color-list .color-item.green {
+		background-color: #009688;
+	}
+
+	.color-list .color-item.red {
+		background-color: #ed4014;
+	}
+
+	.color-list .color-item.colorBlue {
+		background: linear-gradient(270deg, #5ECFFF 0%, #0084FF 100%);
+	}
+
+	.columnsBox {
+		margin-right: 10px;
+	}
+
+	.priceBox {
+		width: 100%;
+	}
+
+	.rulesBox {
+		display: flex;
+		flex-wrap: wrap;
+	}
+
+	.pictrueBox {
+		display: inline-block;
+	}
+
+	.pictrueTab {
+		width: 40px !important;
+		height: 40px !important;
+	}
+
+	.pictrue {
+		width: 60px;
+		height: 60px;
+		border: 1px dotted rgba(0, 0, 0, 0.1);
+		margin-right: 15px;
+		margin-bottom 10px;
+		display: inline-block;
+		position: relative;
+		cursor: pointer;
+
+		img {
+			width: 100%;
+			height: 100%;
+		}
+
+		.btndel {
+			position: absolute;
+			z-index: 1;
+			width: 20px !important;
+			height: 20px !important;
+			left: 46px;
+			top: -4px;
+		}
+	}
+
+	.upLoad {
+		width: 58px;
+		height: 58px;
+		line-height: 58px;
+		border: 1px dotted rgba(0, 0, 0, 0.1);
+		border-radius: 4px;
+		background: rgba(0, 0, 0, 0.02);
+		cursor: pointer;
+	}
+
+	.curs {
+		cursor: pointer;
+	}
+
+	.inpWith {
+		width: 60%;
+	}
+
+	.labeltop {
+		>>>.ivu-form-item-label {
+			float: none !important;
+			display: inline-block !important;
+			margin-left: 120px !important;
+			width: auto !important;
+		}
+
+		.icondrop-down {
+			font-size: 12px;
+			margin-left: 5px;
+		}
+	}
+
+	.video-icon {
+		background-image: url('https://cdn.oss.9gt.net/prov1.1/1/icons.png'); // cdn.oss.9gt.net/prov1.1/1/icons.png);
+		// background-color: #fff;
+		background-position: -9999px;
+		background-repeat: no-repeat;
+	}
+
+	.progress {
+		margin-top: 10px;
+	}
+
+	.new_tab {
+		>>>.ivu-tabs-nav .ivu-tabs-tab {
+			padding: 4px 16px 20px !important;
+			font-weight: 500;
+		}
+	}
 </style>

+ 10 - 1
src/router/modules/index.js

@@ -26,6 +26,15 @@ export default {
                 title: '运营概况'
             },
             component: () => import('@/pages/index/index')
-        }
+        },
+		{
+		    path: 'order_list',
+		    name: `${pre}order_list`,
+		    meta: {
+		        auth: ['supplier-order-list'],
+		        title: '省市区订单'
+		    },
+		    component: () => import('@/pages/index/order')
+		}
     ]
 };

+ 9 - 0
src/router/modules/order.js

@@ -34,6 +34,15 @@ export default {
 				title: '售后退款'
 			},
 			component: () => import('@/pages/order/refund/index')
+		},
+		{
+			path: 'stock',
+			name: `${pre}stock`,
+			meta: {
+				auth: ['supplier-order-stock'],
+				title: '进货订单'
+			},
+			component: () => import('@/pages/order/stock/index')
 		}
 	]
 };