<template>
	<!-- 营销-积分商品 -->
	<div>
		<Card :bordered="false" dis-hover class="ivu-mt" :padding="0">
			<div class="new_card_pd">
				<!-- 查询条件 -->
				<Form ref="tableFrom" inline :model="tableFrom" :label-width="labelWidth"
					:label-position="labelPosition" @submit.native.prevent>
					<FormItem label="仓库：" prop="pid" label-for="pid">
						<Select v-model="tableFrom.wid" @on-change="userSearchs" clearable class="input-add">
							<Option v-for="item in data1" :value="item.id" :key="item.id">
								{{ item.title }}
							</Option>
						</Select>
					</FormItem>
				</Form>
			</div>
		</Card>
		<Card :bordered="false" dis-hover class="ivu-mt">
			<!-- 操作 -->
			<Button v-auth="['admin-erp-stocktaking_add']" type="primary" @click="add" class="mr10">添加盘点单</Button>
			<!-- 积分商品-表格 -->
			<Table :columns="columns1" :data="tableList" :loading="loading" highlight-row no-userFrom-text="暂无数据"
				no-filtered-userFrom-text="暂无筛选结果" class="ivu-mt">
				<template slot-scope="{ row, index }" slot="passageway">
					<span> {{ row.bin_number.slice(0,2) }}</span>
				</template>
				<template slot-scope="{ row, index }" slot="control">
					<span> {{ row.bin_number.slice(2,3) }}</span>
				</template>
				<template slot-scope="{ row, index }" slot="num">
					<span> {{ row.body.length }}</span>
				</template>
				<template slot-scope="{ row, index }" slot="add_time">
					<span> {{ row.add_time |formatDate }}</span>
				</template>
				<template slot-scope="{ row, index }" slot="ware">
					<div>{{row.ware.title}}</div>
					<!-- <div>名称：{{row.ware.title}}</div>
					<div>ID:{{row.ware.id}}</div>
					<div>手机：{{row.ware.phone}}</div>
					<div>地址：{{row.ware.detailed_address}}</div> -->
				</template>
				<template slot-scope="{ row, index }" slot="status">
					<Tag color="default" v-if="row.status == 0">待审核</Tag>
					<Tag color="primary" v-if="row.status == 1">通过</Tag>
					<Tag color="error" v-if="row.status == -1">拒绝</Tag>
				</template>
				<template slot-scope="{ row, index }" slot="action">
					<a @click="look(row)">详情</a>
					<template v-if="row.status == 0">
						<Divider type="vertical" />
						<a @click="pass(row)">审核</a>
					</template>
					<!-- <a @click="del(row, '删除仓位', index)">删除</a> -->
				</template>
			</Table>
			<div class="acea-row row-right page">
				<Page :total="total" :current="tableFrom.page" show-elevator show-total @on-change="pageChange"
					:page-size="tableFrom.limit" />
			</div>
		</Card>
		<Modal
		  v-model="modalpass"
		  scrollable
		  title="审核"
		  class="order_box"
		  :closable="false"
		  :mask-closable="false"
		>
		  <Form
		    ref="remarks"
		    :model="remarks"
		    :label-width="80"
		    @submit.native.prevent
		  >
		    <FormItem label="审核人：">
			  <Select v-model="remarks.auth_uid" clearable filterable @on-change="userSearchse"
			  	class="input-add">
			  	<Option v-for="item in authLists" :value="item.id" :key="item.id">{{ item.staff_name }}
			  	</Option>
			  </Select>
		    </FormItem>
			<FormItem label="状态：">
			  <Select v-model="remarks.status" clearable filterable 
			  	class="input-add">
			  	<Option :value="1" >通过</Option>
				<Option :value="-1" >拒绝</Option>
				<!-- <Option :value="2" >部分完成</Option>
				<Option :value="3" >完成</Option>
				<Option :value="-2" >无效</Option> -->
			  </Select>
			</FormItem>
			<FormItem label="备注：">
			  <Input
			      v-model="remarks.auth_remark"
			      maxlength="200"
			      show-word-limit
			      type="textarea"
			      placeholder="请填写备注~"
			      style="width: 100%"
			    />
			</FormItem>
		  </Form>
		  <div slot="footer">
		    <Button type="primary" @click="putRemark()">提交</Button>
		    <Button @click="cancel()">取消</Button>
		  </div>
		  </Modal>
		  <stocktakingDetail ref="stocktakingDetail"></stocktakingDetail>
	</div>
</template>

<script>
	import stocktakingDetail from './stocktakingDetail.vue'
	import {
		mapState
	} from "vuex";
	import {
		integralProductListApi,
		integralIsShowApi,
		storeSeckillApi,
	} from "@/api/marketing";
	import {
		getPositionList,
		getUserInfo,
		getInventoryList,
		getGodownList,
		getUserList,
		authInventory,
	} from "@/api/erp";
	import {
		formatDate
	} from "@/utils/validate";
	import timeOptions from "@/utils/timeOptions";
	import Setting from "@/setting";
	export default {
		name: "stocktaking",
		components: {
			stocktakingDetail
		},
		filters: {
			formatDate(time) {
				if (time !== 0) {
					let date = new Date(time * 1000);
					return formatDate(date, "yyyy-MM-dd");
				}
			},
		},
		data() {
			return {
				modalpass:false,
				authLists: [],//审核员列表
				remarks: {
					id: 0,
					status: '',
					auth_uid: "",
					auth_admin_id: "",
					auth_remark: '',
				},
				data1: [],//仓库列表
				roterPre: Setting.roterPre,
				loading: false,
				options: timeOptions,
				columns1: [{
						title: "ID",
						key: "id",
						width: 80,
					},
					{
						title: "订单编号",
						key: "order_id",
						minWidth: 90,
					},
					{
						title: "商品数量",
						slot: "num",
						minWidth: 90,
					},
					{
						title: "所属仓库",
						slot: "ware",
						minWidth: 90,
					},
					{
						title: "盘点时间",
						slot: "add_time",
						minWidth: 90,
					},
					{
						title: "状态",
						slot: "status",
						minWidth: 90,
					},
					{
						title: "备注",
						key: "auth_remark",
						minWidth: 90,
					},
					{
						title: "操作",
						slot: "action",
						fixed: "right",
						width: 200,
					},
				],
				tableList: [],
				timeVal: [],
				grid: {
					xl: 7,
					lg: 10,
					md: 12,
					sm: 24,
					xs: 24,
				},
				tableFrom: {
					// integral_time: "",
					// is_show: "",
					// store_name: "",
					wid: '',
					key: '',
					page: 1,
					limit: 10,
				},
				total: 0,
			};
		},
		computed: {
			...mapState("admin/layout", ["isMobile"]),
			labelWidth() {
				return this.isMobile ? undefined : 96;
			},
			labelPosition() {
				return this.isMobile ? "top" : "right";
			},
		},
		created() {
			this.getGodownList()
			this.getList();
		},
		methods: {
			look(row) {
				this.$refs.stocktakingDetail.getInfo(row.id);
			},
			putRemark() {
				authInventory(this.remarks).then(res => {
					this.cancel()
					this.getList();
				})
			},
			cancel() {
				this.remarks = {
					id:0,
					status: '',
					auth_uid: "",
					auth_admin_id: "",}
					this.modalpass = false
			},
			userSearchse(e) {
				let auth = this.authLists.find(item => item.id == e)
				this.remarks.auth_admin_id = auth.admin_id
			},
			//审核
			pass(row) {
				this.remarks.id = row.id
				getUserList({
					wid: row.wid
				}).then(res => {
					this.authLists = res.data.data
					this.modalpass = true;
				})
			},
			userSearchs(e) {
				this.tableFrom.page = 1;
				this.getList();
			},
			getGodownList() {
				getGodownList().then(res => {
					console.log(res);
					this.data1 = res.data.data
				})
			},
			// 添加
			add() {
				this.$router.push({
					path: this.roterPre + "/erp/stocktaking_add?id=0"
				});
			},
			addMore() {
				this.$router.push({
					path: this.roterPre + "/marketing/store_integral/add_store_integral",
				});
			},
			orderList(row) {
				this.$router.push({
					path: this.roterPre + "/marketing/store_integral/order_list",
					query: {
						product_id: row.id,
					},
				});
			},
			// 导出
			exports() {
				let formValidate = this.tableFrom;
				let data = {
					start_status: formValidate.start_status,
					status: formValidate.status,
					store_name: formValidate.store_name,
				};
				storeSeckillApi(data)
					.then((res) => {
						location.href = res.data[0];
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
			// 编辑
			edit(row) {
				this.$router.push({
					path: this.roterPre + "/erp/add_position?id=" + row.id
				});
			},
			// 一键复制
			copy(row) {
				this.$router.push({
					path: this.roterPre + "/marketing/store_integral/create/" + row.id + "/1",
				});
			},
			// 删除
			del(row, tit, num) {
				let delfromData = {
					title: tit,
					num: num,
					url: `/erp/Warehouse/position_del/${row.id}`,
					method: "DELETE",
					ids: "",
				};
				this.$modalSure(delfromData)
					.then((res) => {
						this.$Message.success(res.msg);
						this.tableList.splice(num, 1);
						if (!this.tableList.length) {
							this.tableFrom.page =
								this.tableFrom.page == 1 ? 1 : this.tableFrom.page - 1;
						}
						this.getList();
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
			// 列表
			getList() {
				this.loading = true;
				// this.tableFrom.start_status = this.tableFrom.start_status || "";
				// this.tableFrom.is_show = this.tableFrom.is_show || "";
				getInventoryList(this.tableFrom)
					.then(async (res) => {
						let data = res.data;
						this.tableList = data.data;
						this.total = data.count;
						this.loading = false;
					})
					.catch((res) => {
						this.loading = false;
						this.$Message.error(res.msg);
					});
			},
			pageChange(index) {
				this.tableFrom.page = index;
				this.getList();
			},
			// 表格搜索
			tableSearchs() {
				this.tableFrom.page = 1;
				this.getList();
			},
			// 具体日期
			onchangeTime(e) {
				this.timeVal = e;
				this.tableFrom.integral_time = this.timeVal[0] ? this.timeVal.join("-") : "";
			},
			// 修改是否显示
			onchangeIsShow(row) {
				let data = {
					id: row.id,
					is_show: row.is_show,
				};
				integralIsShowApi(data)
					.then(async (res) => {
						this.$Message.success(res.msg);
					})
					.catch((res) => {
						this.$Message.error(res.msg);
					});
			},
		},
	};
</script>

<style scoped lang="stylus">
	.tabBox_img {
		width: 36px;
		height: 36px;
		border-radius: 4px;
		cursor: pointer;

		img {
			width: 100%;
			height: 100%;
		}
	}
</style>