Răsfoiți Sursa

单据不可读

AlanWong 1 an în urmă
părinte
comite
dc6ab4eb41

+ 1 - 3
src/views/audit/attribute/index.vue

@@ -455,7 +455,6 @@
 		.bill-left {
 			position: relative;
 			border-right: solid #EEE 1px;
-			padding-right: 16px;
 			flex-shrink: 0;
 
 			.bill-tab {
@@ -477,9 +476,8 @@
 		}
 
 		.bill-main {
-			width: calc(100% - 16px);
+			width: 100%;
 			box-sizing: border-box;
-			margin-left: 16px;
 			position: relative;
 			height: 100%;
 			overflow-y: hidden;

+ 1 - 3
src/views/audit/brand/index.vue

@@ -341,7 +341,6 @@
 		.bill-left {
 			position: relative;
 			border-right: solid #EEE 1px;
-			padding-right: 16px;
 			flex-shrink: 0;
 			.bill-tab {
 				width: 150px;
@@ -356,9 +355,8 @@
 			}
 		}
 		.bill-main {
-			width: calc(100% - 16px);
+			width: 100%;
 			box-sizing: border-box;
-			margin-left: 16px;
 			position: relative;
 			height: 100%;
 			overflow-y: hidden;

+ 42 - 57
src/views/audit/depots/index.vue

@@ -1,40 +1,38 @@
 <template>
 	<div class="my-container">
-		<transition-group name="fade" style="position: relative;width: 100%;display: flex;">
-			<div class="bill-main" v-show="isShow==='ckb'" key="item">
-				<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
-					@resert="getDataList" @detail="openEdit" @onRefresh="onRefresh">
-				</module-view>
-				<!-- 注册/编辑弹窗 -->
-				<el-dialog :title="popTitle+'仓库'" :visible.sync="dialogFormVisible" width="30%">
-					<by-form :propConfig="addConfig" ref="addFormId"></by-form>
-					<div slot="footer" class="dialog-footer">
-						<el-button @click="dialogFormVisible = false">取 消</el-button>
-						<el-button type="primary" @click="confirm">确 定</el-button>
-					</div>
-				</el-dialog>
-			</div>
-			<div class="bill-main" v-show="isShow==='cwb'" key="item2">
-				<module-view :propConfig="config2" ref="moduleView2" @clickHandle="clickHandle2" @detail="openEdit2"
-					@pagination="getDataList2" @search="getDataList2" @resert="getDataList2" @onRefresh="onRefresh2">
-				</module-view>
-				<!-- 注册/编辑弹窗 -->
-				<el-dialog :title="popTitle+'仓位'" :visible.sync="dialogFormVisible2" :show-close="false" width="30%">
-					<by-form :propConfig="addConfig2" ref="addFormId2">
-						<template v-slot:organizationName="{value}">
-							<el-input placeholder="请选择所属机构名称" size="small" v-model="value.organizationName"
-								class="input-organizationName" :readonly="true">
-								<el-button slot="append" icon="el-icon-more" @click="handleSupplier"></el-button>
-							</el-input>
-						</template>
-					</by-form>
-					<div slot="footer" class="dialog-footer">
-						<el-button @click="closeStoringLocation">取 消</el-button>
-						<el-button type="primary" @click="confirm2">确 定</el-button>
-					</div>
-				</el-dialog>
-			</div>
-		</transition-group>
+		<div class="bill-main" v-show="isShow==='ckb'" key="item">
+			<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+				@resert="getDataList" @detail="openEdit" @onRefresh="onRefresh">
+			</module-view>
+			<!-- 注册/编辑弹窗 -->
+			<el-dialog :title="popTitle+'仓库'" :visible.sync="dialogFormVisible" width="30%">
+				<by-form :propConfig="addConfig" ref="addFormId"></by-form>
+				<div slot="footer" class="dialog-footer">
+					<el-button @click="dialogFormVisible = false">取 消</el-button>
+					<el-button type="primary" @click="confirm">确 定</el-button>
+				</div>
+			</el-dialog>
+		</div>
+		<div class="bill-main" v-show="isShow==='cwb'" key="item2">
+			<module-view :propConfig="config2" ref="moduleView2" @clickHandle="clickHandle2" @detail="openEdit2"
+				@pagination="getDataList2" @search="getDataList2" @resert="getDataList2" @onRefresh="onRefresh2">
+			</module-view>
+			<!-- 注册/编辑弹窗 -->
+			<el-dialog :title="popTitle+'仓位'" :visible.sync="dialogFormVisible2" :show-close="false" width="30%">
+				<by-form :propConfig="addConfig2" ref="addFormId2">
+					<template v-slot:organizationName="{value}">
+						<el-input placeholder="请选择所属机构名称" size="small" v-model="value.organizationName"
+							class="input-organizationName" :readonly="true">
+							<el-button slot="append" icon="el-icon-more" @click="handleSupplier"></el-button>
+						</el-input>
+					</template>
+				</by-form>
+				<div slot="footer" class="dialog-footer">
+					<el-button @click="closeStoringLocation">取 消</el-button>
+					<el-button type="primary" @click="confirm2">确 定</el-button>
+				</div>
+			</el-dialog>
+		</div>
 		<supplier-modal ref="supplierModal" @confirm="confirmSupplier" :zIndex="9999" />
 	</div>
 </template>
@@ -109,6 +107,7 @@
 				attr: {
 					size: 'mini',
 					align: 'left',
+					triggerRowCheck: 'row'
 				},
 				columns: [{
 					title: '名称',
@@ -233,6 +232,7 @@
 					seq: true,
 					align: 'left',
 					checkbox: true,
+					triggerRowCheck: 'row'
 				},
 				columns: [{
 					width: 300,
@@ -530,9 +530,7 @@
 			}
 			clearInterval(this.timer)
 			let query = (this.$refs.moduleView as any).getQuery();
-			let loading = this.$loading({ target: '.main-container' });
 			api.pageList(query, 'maindataStorehouse').then((res : any) => {
-				loading.close();
 				if (res.code === 200) {
 					(this.$refs.moduleView as any).setTableValue(res.data.records);
 					let page = {
@@ -542,7 +540,7 @@
 					};
 					(this.$refs.moduleView as any).setPage(page)
 				} else this.$message.error(res.msg)
-			}).catch(() => loading.close());
+			})
 		}
 		// 获取仓位列表数据
 		getDataList2() {
@@ -630,17 +628,19 @@
 		}
 		// 查看仓位
 		changeTab(item : any) {
+			let loading = this.$loading({ target: '.main-container' });
 			api.single({ id: item.id }, 'maindataStorehouse').then((res : any) => {
 				if (res.code === 200) {
+					this.isShow = 'cwb';
 					this.tableData = res.data;
 					res.data.subList.map((v : any) => {
 						v.ckName = res.data.name;
 					})
 					console.log('仓库表数据 ==> ', res.data);
 					(this.$refs.moduleView2 as any).setTableValue(res.data.subList);
-					this.isShow = 'cwb';
-				}
-			})
+					loading.close();
+				} else loading.close();
+			}).catch(() => loading.close());
 		}
 		// 刷新仓库
 		onRefresh() {
@@ -729,27 +729,12 @@
 		width: 100%;
 		box-sizing: border-box;
 		display: flex;
-		padding: 0 16px;
 		height: 100%;
 
-		.search-btn {
-			width: 100%;
-			display: flex;
-			justify-content: flex-end;
-			margin-bottom: 20px;
-		}
-
 		.bill-main {
-			width: calc(100% - 16px);
+			width: 100%;
 			box-sizing: border-box;
-			margin-left: 16px;
 			height: 100%;
 		}
-
-		@media screen and (min-width: 1500px) {
-			.bill-main {
-				min-width: 1610px;
-			}
-		}
 	}
 </style>

+ 40 - 39
src/views/audit/distributor/index.vue

@@ -1,34 +1,34 @@
 <template>
 	<div class="my-container">
-		<transition-group name="fade" style="position: relative;width: 100%;display: flex;">
-			<div class="bill-left" v-show="isShow==='home'" key="item">
-				<div class="bill-tab">
-					<div class="bill-title">导航</div>
-					<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
-				</div>
+		<!-- <transition-group name="fade" style="position: relative;width: 100%;display: flex;"> -->
+		<div class="bill-left" v-show="isShow==='home'" key="item">
+			<div class="bill-tab">
+				<div class="bill-title">导航</div>
+				<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
 			</div>
-			<div class="bill-main" v-show="isShow==='home'" key="item2">
-				<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
-					@resert="onRefresh" @clickHandle="clickHandle" @detail="openEdit" @onRefresh="onRefresh">
-				</module-view>
+		</div>
+		<div class="bill-main" v-show="isShow==='home'" key="item2">
+			<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+				@resert="onRefresh" @clickHandle="clickHandle" @detail="openEdit" @onRefresh="onRefresh">
+			</module-view>
+		</div>
+		<!-- 新增/编辑弹窗 -->
+		<div class="detil" v-show="isShow==='add'" key="item3">
+			<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
+			<div class="box-shadow">
+				<by-form :propConfig="addConfig" ref="addFormId">
+					<template v-slot:k3ServerUrl="{value}" class="clearfix">
+						<i class="el-icon-question" title="私有云必须配置金蝶云星空产品地址,K3Cloud/结尾,若为公有云则必须置空"></i>
+						<vxe-input v-model="value.k3ServerUrl" style="width:calc(100% - 25px);margin-left: 10px;"></vxe-input>
+					</template>
+					<template v-slot:status class="clearfix">
+						<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="0">正常</el-radio>
+						<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="1">禁用</el-radio>
+					</template>
+				</by-form>
 			</div>
-			<!-- 新增/编辑弹窗 -->
-			<div class="detil" v-show="isShow==='add'" key="item3">
-				<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
-				<div class="box-shadow">
-					<by-form :propConfig="addConfig" ref="addFormId">
-						<template v-slot:k3ServerUrl="{value}" class="clearfix">
-							<i class="el-icon-question" title="私有云必须配置金蝶云星空产品地址,K3Cloud/结尾,若为公有云则必须置空"></i>
-							<vxe-input v-model="value.k3ServerUrl" style="width:calc(100% - 25px);margin-left: 10px;"></vxe-input>
-						</template>
-						<template v-slot:status class="clearfix">
-							<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="0">正常</el-radio>
-							<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="1">禁用</el-radio>
-						</template>
-					</by-form>
-				</div>
-			</div>
-		</transition-group>
+		</div>
+		<!-- </transition-group> -->
 	</div>
 </template>
 <script lang="ts">
@@ -65,8 +65,8 @@
 			}
 		}
 		config : any = {
-			attr:{
-				calculateH:true
+			attr: {
+				calculateH: true
 			},
 			search: {
 				attr: {
@@ -331,7 +331,7 @@
 		onChangeTree(e : any) {
 			this.categoryIds = e.id;
 			let loading = this.$loading({ target: '.main-container' });
-			api.byCategoryPage({ categoryId: e.id,type:2 }, 'maindataOrganizationCategory').then((res : any) => {
+			api.byCategoryPage({ categoryId: e.id, type: 2 }, 'maindataOrganizationCategory').then((res : any) => {
 				if (res.code === 200) {
 					(this.$refs.moduleView as any).setTableValue(res.data.records);
 					let page = {
@@ -410,8 +410,8 @@
 				loading.close();
 				if (res.code === 200) {
 					res.data.records.map((v : any) => {
-						if(v.financeType==='kingdee')v.financeType2 = '金蝶K3';
-						if(v.financeType==='yonbip')v.financeType2 = '用友U8';
+						if (v.financeType === 'kingdee') v.financeType2 = '金蝶K3';
+						if (v.financeType === 'yonbip') v.financeType2 = '用友U8';
 					});
 					(this.$refs.moduleView as any).setTableValue(res.data.records);
 					let page = {
@@ -442,13 +442,13 @@
 			this.popTitle = '编辑'
 			let loading = this.$loading({ target: '.main-container' });
 			api.single({ id: e.id }, 'maindataMaterialDistributor').then((res : any) => {
-				loading.close();
 				if (res.code === 200) {
 					let data = res.data;
 					this.radio = data.status;
 					this.dialogFormVisible = true;
 					this.$nextTick(() => (this as any).$refs.addFormId.setValue(data));
-				}
+					loading.close();
+				} else loading.close();
 			}).catch(() => loading.close());
 		}
 		// 操作删除
@@ -486,23 +486,27 @@
 		display: flex;
 		padding: 16px;
 		height: 100%;
+
 		.bill-left {
 			position: relative;
 			border-right: solid #EEE 1px;
 			padding-right: 16px;
 			flex-shrink: 0;
+
 			.bill-tab {
 				width: 150px;
 				height: 100%;
 				transition: all .5s;
 				overflow: hidden;
 			}
+
 			.tab-title {
 				font-size: 16px;
 				padding-bottom: 16px;
 				width: 200px;
 			}
 		}
+
 		.bill-main {
 			width: calc(100% - 16px);
 			box-sizing: border-box;
@@ -511,8 +515,10 @@
 			height: 100%;
 			overflow-y: hidden;
 		}
+
 		.detil {
 			width: 100%;
+
 			.box-shadow {
 				box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
 				padding: 20px;
@@ -526,10 +532,5 @@
 				margin-top: 20px;
 			}
 		}
-		@media screen and (min-width: 1700px) {
-			.bill-main {
-				min-width: 1450px;
-			}
-		}
 	}
 </style>

+ 153 - 0
src/views/audit/logistics/index.vue

@@ -0,0 +1,153 @@
+<template>
+	<div class="my-container">
+		<div class="bill-main">
+			<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+				@resert="onRefresh" @onRefresh="onRefresh">
+			</module-view>
+		</div>
+	</div>
+</template>
+<script lang="ts">
+	import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+	// import Parent from "@/components/Parent/Parent";
+	import api from "@/api/currency";
+	import Assembly from "@/components/Assembly/material.vue";
+	@Component
+	export default class Brand extends Vue {
+		timeNum = 0;
+		timer : any = null
+		popTitle : any = ''
+		radio : any = 0
+		dialogFormVisible : boolean = false
+		config : any = {
+			attr:{
+				calculateH:true
+			},
+			search: {
+				attr: {
+					size: 'mini',
+				},
+				columns: [
+					[{
+						span: 6,
+						label: '名称',
+						prop: 'name',
+						component: 'by-input',
+						labelWidth: '70px',
+						compConfig: {
+							attr: {
+								placeholder: '请输入名称',
+								clearable: true
+							},
+						},
+					}]
+				]
+			},
+			tool: {
+				tools: {
+					search: true,
+					refresh: true
+				}
+			},
+			table: {
+				attr: {
+					size: 'mini',
+					align: 'left',
+				},
+				columns: [{
+					title: '名称',
+					field: 'name',
+					isDetail: true,
+					width: 300,
+				}, {
+					title: '简称',
+					field: 'shortName',
+					width: 300,
+				},
+				{
+					width: 500,
+					title: '备注',
+					field: 'remark',
+				},
+				{
+					width: 80,
+					title: '状态',
+					field: 'status',
+					align: 'center',
+					component: Assembly,
+				},
+				]
+			},
+		}
+		mounted() {
+			this.timer = setInterval(() => {
+				this.getDataList()
+			}, 300)
+		}
+		// 获取列表数据
+		getDataList() {
+			if (!this.$refs.moduleView) {
+				if (this.timeNum > 5) {
+					clearInterval(this.timer)
+				}
+				this.timeNum++;
+				return
+			}
+			clearInterval(this.timer)
+			let query = (this.$refs.moduleView as any).getQuery();
+			this.getPageList(query);
+		}
+		getPageList(query : any) {
+			let loading = this.$loading({ target: '.main-container' });
+			api.pageList(query, 'maindataMaterialBrand').then((res : any) => {
+				loading.close();
+				if (res.code === 200) {
+					(this.$refs.moduleView as any).setTableValue(res.data.records);
+					let page = {
+						pageNo: res.data.current, //当前页
+						pageSize: res.data.size, //每页条数
+						total: res.data.total //总条数
+					};
+					(this.$refs.moduleView as any).setPage(page);
+				} else this.$message.error(res.msg);
+			}).catch(() => loading.close());
+		}
+		// 刷新/重置
+		onRefresh() {
+			(this as any).$refs.moduleView.clearSearch();
+			this.getDataList();
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.my-container {
+		width: 100%;
+		box-sizing: border-box;
+		display: flex;
+		padding: 16px;
+		height: 100%;
+		.bill-left {
+			position: relative;
+			border-right: solid #EEE 1px;
+			flex-shrink: 0;
+			.bill-tab {
+				width: 150px;
+				height: 100%;
+				transition: all .5s;
+				overflow: hidden;
+			}
+			.tab-title {
+				font-size: 16px;
+				padding-bottom: 16px;
+				width: 200px;
+			}
+		}
+		.bill-main {
+			width: 100%;
+			box-sizing: border-box;
+			position: relative;
+			height: 100%;
+			overflow-y: hidden;
+		}
+	}
+</style>

+ 4 - 9
src/views/audit/manufacturer/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="my-container">
-		<transition-group name="fade" style="position: relative;width: 100%;display: flex;">
+		<!-- <transition-group name="fade" style="position: relative;width: 100%;display: flex;"> -->
 			<div class="bill-left" v-show="isShow==='home'" key="item">
 				<div class="bill-tab">
 					<div class="bill-title">导航</div>
@@ -28,7 +28,7 @@
 					</by-form>
 				</div>
 			</div>
-		</transition-group>
+		<!-- </transition-group> -->
 	</div>
 </template>
 <script lang="ts">
@@ -442,13 +442,13 @@
 			this.popTitle = '编辑'
 			let loading = this.$loading({ target: '.main-container' });
 			api.single({ id: e.id }, 'maindataMaterialManufacturer').then((res : any) => {
-				loading.close();
 				if (res.code === 200) {
 					let data = res.data;
 					this.radio = data.status;
 					this.dialogFormVisible = true;
 					this.$nextTick(() => (this as any).$refs.addFormId.setValue(data));
-				}
+					loading.close();
+				} else loading.close();
 			}).catch(() => loading.close());
 		}
 		// 操作删除
@@ -526,10 +526,5 @@
 				margin-top: 20px;
 			}
 		}
-		@media screen and (min-width: 1700px) {
-			.bill-main {
-				min-width: 1450px;
-			}
-		}
 	}
 </style>

+ 105 - 9
src/views/audit/orderTask/index.vue

@@ -209,7 +209,6 @@
 											size: 'mini',
 											type: 'number',
 											defaultValue: 1,
-											readonly: false
 										},
 									}
 								},
@@ -222,7 +221,6 @@
 										attr: {
 											size: 'mini',
 											type: 'number',
-											// readonly: true
 										},
 									}
 								},
@@ -241,7 +239,6 @@
 											size: 'mini',
 											type: 'number',
 											defaultValue: 0,
-											// readonly: true
 										},
 									}
 								},
@@ -938,6 +935,61 @@
 				let billConfig = (this as any).$lodash.cloneDeep(this.config.bill);
 				billConfig.form.attr.readonly = false; // 设置只读
 				billConfig.tool.tools = { return: true, save: true, };
+				if (billConfig.tableConfig[0].table.columns.at(-1).title != '操作') {
+					billConfig.tableConfig[0].table.columns.push({
+						width: 90,
+						title: '操作',
+						action: true,
+						plugins: [{
+							icon: 'el-icon-delete',
+							name: '删除',
+							audit: '',
+							event: {
+								click: (item : any) => {
+									(this as any).changeTable(item)
+								}
+							}
+						}]
+					})
+				};
+				billConfig.tableConfig[0].table.columns[4] = {
+					width: 120,
+					title: '数量',
+					field: 'number',
+					component: 'by-input',
+					compConfig: {
+						attr: {
+							size: 'mini',
+							type: 'number',
+							defaultValue: 1,
+						},
+					}
+				};
+				billConfig.tableConfig[0].table.columns[5] = {
+					width: 90,
+					title: '单价',
+					field: 'unitPrice',
+					component: 'by-input',
+					compConfig: {
+						attr: {
+							size: 'mini',
+							type: 'number',
+						},
+					}
+				};
+				billConfig.tableConfig[0].table.columns[7] = {
+					width: 120,
+					title: '优惠金额',
+					field: 'prePrice',
+					component: 'by-input',
+					compConfig: {
+						attr: {
+							size: 'mini',
+							type: 'number',
+							defaultValue: 0,
+						},
+					}
+				};
 				if (e === 'all') {
 					billConfig.tool.tools = { return: true, save: true, smt: true };
 					this.tableData = [];
@@ -992,6 +1044,44 @@
 								}]
 							})
 						};
+						billConfig.tableConfig[0].table.columns[4] = {
+							width: 120,
+							title: '数量',
+							field: 'number',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+									defaultValue: 1,
+								},
+							}
+						};
+						billConfig.tableConfig[0].table.columns[5] = {
+							width: 90,
+							title: '单价',
+							field: 'unitPrice',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+								},
+							}
+						};
+						billConfig.tableConfig[0].table.columns[7] = {
+							width: 120,
+							title: '优惠金额',
+							field: 'prePrice',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+									defaultValue: 0,
+								},
+							}
+						};
 						billConfig.form.attr.readonly = false; // 设置只读
 						billConfig.tool.tools = { save: true, };
 						if (parentData.submitState === 0) billConfig.tool.tools = { return: true, save: true, smt: true };
@@ -1010,25 +1100,31 @@
 					};
 				}
 			}).catch(() => loading.close());
-
-
 		}
 		// 设置只读
 		setReadonly(e : any, isReturn : any) {
 			let readonly = (this as any).$lodash.cloneDeep(this.config.bill);
+			// console.log(readonly);
 			readonly.form.attr.readonly = true; // 设置只读
 			readonly.tool.tools = { return: true };
 			if (isReturn) readonly.tool.tools = { return: true, returnSmt: true };
 			readonly.tableConfig[0].table.columns = readonly.tableConfig[0].table.columns.filter((v : any) => v.title != '操作');
-			readonly.tableConfig[0].tool.tools = {};
-
-			console.log(readonly.tableConfig[0].table);
-			
 			readonly.tableConfig[0].table.columns[4] = {
 				width: 120,
 				title: '数量',
 				field: 'number',
 			};
+			readonly.tableConfig[0].table.columns[5] = {
+				width: 90,
+				title: '单价',
+				field: 'unitPrice',
+			};
+			readonly.tableConfig[0].table.columns[7] = {
+				width: 120,
+				title: '优惠金额',
+				field: 'prePrice',
+			};
+			readonly.tableConfig[0].tool.tools = {};
 			let data = e.suborderList;
 			(this.$refs.bill as any).setBillConfig(readonly);
 			(this.$refs.bill as any).setBillFormValue(e);// 设置单据表单数据

+ 56 - 4
src/views/audit/outbound/index.vue

@@ -882,6 +882,7 @@
 			api.single({ id: parentData[0].id }, 'supplyPurchaseOrder').then((res : any) => {
 				if (res.code === 200) {
 					parentData = res.data ? [res.data] : parentData;
+					console.log(parentData);
 					parentData = parentData.map((item : any) => {
 						item.receiveAddress = item.address
 						item.receive = item.consignee
@@ -890,6 +891,23 @@
 						return newData
 					})
 					let billConfig = (this as any).$lodash.cloneDeep(this.config.bill);
+					if (billConfig.tableConfig[0].table.columns.at(-1).title != '操作') {
+						billConfig.tableConfig[0].table.columns.push({
+							width: 90,
+							title: '操作',
+							action: true,
+							plugins: [{
+								icon: 'el-icon-delete',
+								name: '删除',
+								audit: '',
+								event: {
+									click: (item : any) => {
+										(this as any).changeTable(item)
+									}
+								}
+							}]
+						})
+					};
 					parentData[0].suborderList = parentData[0].suborderList.filter((v : any) => (v.number - v.outNumber) > 0);
 					parentData[0].suborderList.map((v : any) => {
 						v.deliveryNumber = v.number - v.outNumber;
@@ -944,11 +962,11 @@
 			let selectData = (this as any).$refs.bill.getTableSelectData(this.tabType);
 			if (selectData.length > 0) {
 				if (selectData.length > 1) return this.$message.warning('只能同步一条数据');
-				if (selectData[0].financeOrderId) return this.$message.warning('此数据已同步财务编号');
+				if (selectData[0].financeOrderId) return this.$message.warning('此数据已同步到财务系统');
 				// if (selectData[0].submitState != 1) return this.$message.warning('只能同步已提交数据');
 				let planData = selectData[0].planDeliveryData.replaceAll(/[-:\s]/g, '');
 				let nowDate = this.getNowDate().replaceAll(/[-:\s]/g, '');
-				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步财务编号');
+				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步到财务系统');
 				this.$confirm('确定同步订单吗', '注意', {
 					confirmButtonText: '确定',
 					cancelButtonText: '取消',
@@ -972,7 +990,6 @@
 			(this as any).$refs.bill.$refs.billForm.validate().then(() => {
 				let query = (this.$refs.bill as any).getBillFormValue(); // 获取单据数据
 				// 子表数据
-				console.log(query);
 				query.purchaseOrderId = query.id;
 				query.suborderList = (this.$refs.bill as any).getBillTableData(0);
 				if (query.suborderList.length > 0) {
@@ -984,7 +1001,7 @@
 						v.taskOrderId = query.id;
 						v.purchaseSuborderId = v.id;
 					}
-				};
+				} else return this.$message.warning('此单出库的物料数量为0,不能保存');
 				// 表格删除
 				query.suborderList.map((v : any, i : any) => {
 					if (v.isDeleted === 1 && !v.id) {
@@ -1081,6 +1098,31 @@
 								}]
 							})
 						};
+						billConfig.tableConfig[0].table.columns[7] = {
+							width: 120,
+							title: '数量',
+							field: 'number',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+									defaultValue: 1,
+								},
+							}
+						};
+						billConfig.tableConfig[0].table.columns[10] = {
+							width: 90,
+							title: '单价',
+							field: 'unitPrice',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+								},
+							}
+						};
 						billConfig.tool.tools = { return: true, save: true, smt: true };
 						// 查销售订单数据
 						api.single({ id: e.purchaseOrderId }, 'supplyPurchaseOrder').then((val : any) => {
@@ -1137,6 +1179,16 @@
 				if (parentData.submitState === 1) readonly.tool.tools = { return: true, returnSmt: true, print: true };
 			}
 			readonly.tableConfig[0].table.columns = readonly.tableConfig[0].table.columns.filter((v : any) => v.title != '操作');
+			readonly.tableConfig[0].table.columns[7] = {
+				width: 120,
+				title: '数量',
+				field: 'number',
+			};
+			readonly.tableConfig[0].table.columns[10] = {
+				width: 90,
+				title: '单价',
+				field: 'unitPrice',
+			};
 			api.single({ id: e.purchaseOrderId }, 'supplyPurchaseOrder').then((val : any) => {
 				if (val.code === 200) {
 					// parentData.suborderList.map((v : any, i : any) => {

+ 100 - 110
src/views/audit/productManagement/index.vue

@@ -1,118 +1,114 @@
 <template>
 	<div class="my-container">
-		<transition-group name="fade" style="position: relative;width: 100%;display: flex;">
-			<div class="bill-left" v-show="isShow==='home'" key="item">
-				<div class="bill-tab">
-					<div class="bill-title">导航</div>
-					<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
-				</div>
+		<div class="bill-left" v-show="isShow==='home'" key="item">
+			<div class="bill-tab">
+				<div class="bill-title">导航</div>
+				<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
 			</div>
-			<div class="bill-main" v-show="isShow==='home'" key="item2">
-				<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
-					@resert="onRefresh" @clickHandle="clickHandle" @detail="getDetail" @onRefresh="onRefresh" />
-			</div>
-			<!-- 新增/编辑 -->
-			<div class="detil" v-show="isShow==='add'" key="item3">
-				<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
-				<div class="box-shadow">
-					<by-form :propConfig="formConfig" ref="form">
-						<template v-slot:description>
-							<el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="textarea">
-							</el-input>
-						</template>
-						<template v-slot:tags>
-							<el-tag style="margin-right: 16px;" :disable-transitions="true" v-for="(item,index) of tagsData"
-								:key="index" closable @close="handleClose2(index)">
-								{{item}}
-							</el-tag>
-							<by-input class="input-new-tag" ref="tagsValue" style="width: 150px;"></by-input>
-							<el-button class="button-new-tag" @click="getTagsValue">添加</el-button>
-						</template>
-						<template v-slot:status>
-							<el-radio v-model="status" :label="0">启用</el-radio>
-							<el-radio v-model="status" :label="1">备用</el-radio>
-							<el-radio v-model="status" :label="2">禁用</el-radio>
-						</template>
-						<template v-slot:ismakeup>
-							<el-radio v-model="ismakeup" :label="0">是</el-radio>
-							<el-radio v-model="ismakeup" :label="1">否</el-radio>
-							<el-button v-show="ismakeup===0" @click="openMakeup">选择商品</el-button>
-						</template>
-						<template v-slot:makeupTable>
-							<div v-if="ismakeup===0">
-								<by-table :propConfig="makeupTable" ref="makeupTable"></by-table>
-							</div>
-						</template>
-						<template v-slot:issued>
-							<el-radio v-model="issued" :label="0">是</el-radio>
-							<el-radio v-model="issued" :label="1">否</el-radio>
-						</template>
-						<template v-slot:materialSpec>
-							<el-radio v-model="materialSpec" :label="0" @input="changeSingle">单规格</el-radio>
-							<el-radio v-model="materialSpec" :label="1" @input="changeSingle">多规格</el-radio>
-						</template>
-						<template v-slot:attributeName>
-							<div v-if="isSingle" key="item4">
-								<by-table :propConfig="singleTable" @onChangeRow="getInputValue" ref="singeTable">
-									<template v-slot:stock="{row}">
-										<vxe-input v-if="!isEdit" v-model="row.stock" size="mini" type="integer"></vxe-input>
-										<span v-else>{{ row.stock }}</span>
-									</template>
-								</by-table>
-							</div>
-							<div v-if="!isSingle" key="item5">
-								<el-select :value="selectValue" clearable placeholder="请选择" style="width: 19.5%;"
-									@input="getSelectValue">
-									<el-option v-for="item in selectList" :key="item.value" :label="item.name" :value="item.id">
-									</el-option>
-								</el-select>
-								<div class="by-tab" key="item6">
-									<div v-for="(item,index) of attributeList" :key="index">
-										<div class="tab-title">{{item.title}} <i class="el-icon-circle-close"
-												@click="closeGroup(index)"></i>
-										</div>
-										<el-tag class="item-tab" :disable-transitions="true" :key="i" v-for="(tag,i) of item.list" closable
-											@close="handleClose(tag,index)">
-											{{tag}}
-										</el-tag>
-										<by-input class="input-new-tag" :ref="'getValue_'+index"></by-input>
-										<el-button class="button-new-tag" @click="showInput(index)">添加</el-button>
+		</div>
+		<div class="bill-main" v-show="isShow==='home'" key="item2">
+			<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+				@resert="onRefresh" @clickHandle="clickHandle" @detail="getDetail" @onRefresh="onRefresh" />
+		</div>
+		<!-- 新增/编辑 -->
+		<div class="detil" v-show="isShow==='add'" key="item3">
+			<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
+			<div class="box-shadow">
+				<by-form :propConfig="formConfig" ref="form">
+					<template v-slot:description>
+						<el-input type="textarea" :rows="5" placeholder="请输入内容" v-model="textarea">
+						</el-input>
+					</template>
+					<template v-slot:tags>
+						<el-tag style="margin-right: 16px;" :disable-transitions="true" v-for="(item,index) of tagsData"
+							:key="index" closable @close="handleClose2(index)">
+							{{item}}
+						</el-tag>
+						<by-input class="input-new-tag" ref="tagsValue" style="width: 150px;"></by-input>
+						<el-button class="button-new-tag" @click="getTagsValue">添加</el-button>
+					</template>
+					<template v-slot:status>
+						<el-radio v-model="status" :label="0">启用</el-radio>
+						<el-radio v-model="status" :label="1">备用</el-radio>
+						<el-radio v-model="status" :label="2">禁用</el-radio>
+					</template>
+					<template v-slot:ismakeup>
+						<el-radio v-model="ismakeup" :label="0">是</el-radio>
+						<el-radio v-model="ismakeup" :label="1">否</el-radio>
+						<el-button v-show="ismakeup===0" @click="openMakeup">选择商品</el-button>
+					</template>
+					<template v-slot:makeupTable>
+						<div v-if="ismakeup===0">
+							<by-table :propConfig="makeupTable" ref="makeupTable"></by-table>
+						</div>
+					</template>
+					<template v-slot:issued>
+						<el-radio v-model="issued" :label="0">是</el-radio>
+						<el-radio v-model="issued" :label="1">否</el-radio>
+					</template>
+					<template v-slot:materialSpec>
+						<el-radio v-model="materialSpec" :label="0" @input="changeSingle">单规格</el-radio>
+						<el-radio v-model="materialSpec" :label="1" @input="changeSingle">多规格</el-radio>
+					</template>
+					<template v-slot:attributeName>
+						<div v-if="isSingle" key="item4">
+							<by-table :propConfig="singleTable" @onChangeRow="getInputValue" ref="singeTable">
+								<template v-slot:stock="{row}">
+									<vxe-input v-if="!isEdit" v-model="row.stock" size="mini" type="integer"></vxe-input>
+									<span v-else>{{ row.stock }}</span>
+								</template>
+							</by-table>
+						</div>
+						<div v-if="!isSingle" key="item5">
+							<el-select :value="selectValue" clearable placeholder="请选择" style="width: 19.5%;" @input="getSelectValue">
+								<el-option v-for="item in selectList" :key="item.value" :label="item.name" :value="item.id">
+								</el-option>
+							</el-select>
+							<div class="by-tab" key="item6">
+								<div v-for="(item,index) of attributeList" :key="index">
+									<div class="tab-title">{{item.title}} <i class="el-icon-circle-close" @click="closeGroup(index)"></i>
 									</div>
+									<el-tag class="item-tab" :disable-transitions="true" :key="i" v-for="(tag,i) of item.list" closable
+										@close="handleClose(tag,index)">
+										{{tag}}
+									</el-tag>
+									<by-input class="input-new-tag" :ref="'getValue_'+index"></by-input>
+									<el-button class="button-new-tag" @click="showInput(index)">添加</el-button>
+								</div>
 
-									<div style="margin: 20px 0;" v-if="!isAdd" key="item7">
-										<div class="el-button mr15 el-button--primary el-button--small" @click="isAdd=true">添加新规格</div>
-									</div>
-									<div style="display: flex;margin: 20px 0;" v-else key='item8'>
-										<div class="flex-item">
-											<label>规格:</label>
-											<div class="el-input el-input--small" style="width: 250px;margin-right: 16px;">
-												<input type="text" v-model="norms" placeholder="请输入规格" class="el-input__inner">
-											</div>
-										</div>
-										<div class="flex-item">
-											<label>规格值:</label>
-											<div class="el-input el-input--small" style="width: 250px;margin-right: 16px;">
-												<input type="text" v-model="normsValue" placeholder="请输入规格值" class="el-input__inner">
-											</div>
+								<div style="margin: 20px 0;" v-if="!isAdd" key="item7">
+									<div class="el-button mr15 el-button--primary el-button--small" @click="isAdd=true">添加新规格</div>
+								</div>
+								<div style="display: flex;margin: 20px 0;" v-else key='item8'>
+									<div class="flex-item">
+										<label>规格:</label>
+										<div class="el-input el-input--small" style="width: 250px;margin-right: 16px;">
+											<input type="text" v-model="norms" placeholder="请输入规格" class="el-input__inner">
 										</div>
-										<div @click="doComfirm" class="el-button el-button--primary el-button--small">确定</div>
-										<div @click="isAdd=false" class="el-button el-button--danger el-button--small">取消</div>
 									</div>
-									<div>
-										<by-table :propConfig="tableConfig" @onChangeRow="getInputValue" ref="table">
-											<template v-slot:stock="{row}">
-												<vxe-input v-if="!isEdit" v-model="row.stock" size="mini" type="integer"></vxe-input>
-												<span v-else>{{ row.stock }}</span>
-											</template>
-										</by-table>
+									<div class="flex-item">
+										<label>规格值:</label>
+										<div class="el-input el-input--small" style="width: 250px;margin-right: 16px;">
+											<input type="text" v-model="normsValue" placeholder="请输入规格值" class="el-input__inner">
+										</div>
 									</div>
+									<div @click="doComfirm" class="el-button el-button--primary el-button--small">确定</div>
+									<div @click="isAdd=false" class="el-button el-button--danger el-button--small">取消</div>
+								</div>
+								<div>
+									<by-table :propConfig="tableConfig" @onChangeRow="getInputValue" ref="table">
+										<template v-slot:stock="{row}">
+											<vxe-input v-if="!isEdit" v-model="row.stock" size="mini" type="integer"></vxe-input>
+											<span v-else>{{ row.stock }}</span>
+										</template>
+									</by-table>
 								</div>
 							</div>
-						</template>
-					</by-form>
-				</div>
+						</div>
+					</template>
+				</by-form>
 			</div>
-		</transition-group>
+		</div>
 		<!-- 选择物料 -->
 		<productModal ref="product" :mulit="true" @confirm="confirmProduct" />
 		<!-- <productDialog ref="product" :mulit="true" @confirm="confirmProduct" /> -->
@@ -1729,11 +1725,5 @@
 				margin-top: 20px;
 			}
 		}
-
-		@media screen and (min-width: 1700px) {
-			.bill-main {
-				min-width: 1450px;
-			}
-		}
 	}
 </style>

+ 4 - 4
src/views/audit/saleOrder/index.vue

@@ -1021,10 +1021,10 @@
 			let selectData = (this as any).$refs.bill.getTableSelectData('all');
 			if (selectData.length > 0) {
 				if (selectData[0].isMaster !== 1 || selectData[0].status !== 0) return this.$message.warning('只能同步未出库的主单');
-				if (selectData[0].financeOrderId) return this.$message.warning('此数据已同步财务编号');
+				if (selectData[0].financeOrderId) return this.$message.warning('此数据已同步到财务系统');
 				let planData = selectData[0].planDeliveryData.replaceAll(/[-:\s]/g, '');
 				let nowDate = this.getNowDate().replaceAll(/[-:\s]/g, '');
-				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步财务编号');
+				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步到财务系统');
 				this.$confirm('确定同步订单吗', '注意', {
 					confirmButtonText: '确定',
 					cancelButtonText: '取消',
@@ -1051,10 +1051,10 @@
 				type: 'warning',
 				center: true
 			}).then(() => {
-				if (e.financeOrderId) return this.$message.warning('此数据已同步财务编号');
+				if (e.financeOrderId) return this.$message.warning('此数据已同步到财务系统');
 				let planData = e.planDeliveryData.replaceAll(/[-:\s]/g, '');
 				let nowDate = this.getNowDate().replaceAll(/[-:\s]/g, '');
-				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步财务编号');
+				if (planData < nowDate) return this.$message.warning('计划交货时间小于当前时间,不能同步到财务系统');
 				let loading = this.$loading({ target: '.main-container' });
 				api.addSaleOrder({ ids: e.id }).then((res : any) => {
 					loading.close();

+ 14 - 20
src/views/audit/sku/index.vue

@@ -1,15 +1,15 @@
 <template>
 	<div class="my-container">
 		<transition name="el-zoom-in-center">
-			<div class="bill-main" key="index">
-				<module-view :propConfig="config" v-show="isShow==='home'" ref="moduleView" @pagination="getDataList"
-					@search="getDataList" @resert="onRefresh" @detail="openEdit" @onRefresh="onRefresh">
+			<div class="bill-main" v-show="isShow" key="index">
+				<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+					@resert="onRefresh" @detail="openEdit" @onRefresh="onRefresh">
 				</module-view>
 			</div>
 		</transition>
 		<!-- 新增/编辑弹窗 -->
 		<transition name="el-zoom-in-center">
-			<div class="detil" v-show="isShow==='add'" key="index2">
+			<div class="detil" v-show="!isShow" key="index2">
 				<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
 				<div class="box-shadow">
 					<by-table :propConfig="skuConfig" ref="addFormId"></by-table>
@@ -25,7 +25,7 @@
 	@Component({ components: { ForTab } })
 	export default class Attribute extends Vue {
 		// 右边
-		isShow : any = 'home'
+		isShow : any = true
 		timeNum = 0;
 		calculateCount = 0;
 		timer : any = null
@@ -51,13 +51,13 @@
 			},
 			columns: [
 				{
-					width: '150px',
+					width: '200px',
 					title: '标题',
 					field: 'skuTitle',
 
 				},
 				{
-					width: '120px',
+					width: '200px',
 					title: '副标题',
 					field: 'skuSubtitle',
 
@@ -350,7 +350,7 @@
 			api.updateList(data[0], 'maindataMaterialSku').then((res : any) => {
 				if (res.code === 200) {
 					this.$message.success('编辑成功');
-					this.isShow = 'home';
+					this.isShow = true;
 					this.getDataList();
 				} else this.$message.error(res.msg);
 			})
@@ -390,14 +390,14 @@
 			api.single({ id: e.id }, 'maindataMaterialSku').then((res : any) => {
 				loading.close();
 				if (res.code === 200) {
-					this.isShow = 'add';
+					this.isShow = false;
 					setTimeout(() => { (this as any).$refs.addFormId.setValue([res.data]) }, 0);
 				} else loading.close();
 			}).catch(() => loading.close());
 		}
 		// 内页工具栏方法
 		insideTools(e : any) {
-			if (e === 'onReturn') this.isShow = 'home';
+			if (e === 'onReturn') this.isShow = true;
 			if (e === 'onSave') this.doFormData();
 		}
 		// 刷新/重置
@@ -435,15 +435,15 @@
 		}
 
 		.bill-main {
-			width: calc(100% - 16px);
+			width:100%;
 			box-sizing: border-box;
-			margin-left: 16px;
 			position: relative;
+			padding: 0;
 		}
 
 		.detil {
-			width: 100%;
-
+			width: calc(100% - 32px);
+			padding: 16px;
 			.box-shadow {
 				box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
 				padding: 20px;
@@ -457,11 +457,5 @@
 				margin-top: 20px;
 			}
 		}
-
-		@media screen and (min-width: 1700px) {
-			.bill-main {
-				min-width: 1450px;
-			}
-		}
 	}
 </style>

+ 27 - 35
src/views/audit/supplier/index.vue

@@ -1,34 +1,32 @@
 <template>
 	<div class="my-container">
-		<transition-group name="fade" style="position: relative;width: 100%;display: flex;">
-			<div class="bill-left" v-show="isShow==='home'" key="item">
-				<div class="bill-tab">
-					<div class="bill-title">导航</div>
-					<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
-				</div>
+		<div class="bill-left" v-show="isShow==='home'" key="item">
+			<div class="bill-tab">
+				<div class="bill-title">导航</div>
+				<side-tree :propConfig="treeConfig" @onChange="onChangeTree" ref="sideTree" />
 			</div>
-			<div class="bill-main" v-show="isShow==='home'" key="item2">
-				<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
-					@resert="onRefresh" @clickHandle="clickHandle" @detail="openEdit" @onRefresh="onRefresh">
-				</module-view>
+		</div>
+		<div class="bill-main" v-show="isShow==='home'" key="item2">
+			<module-view :propConfig="config" ref="moduleView" @pagination="getDataList" @search="getDataList"
+				@resert="onRefresh" @clickHandle="clickHandle" @detail="openEdit" @onRefresh="onRefresh">
+			</module-view>
+		</div>
+		<!-- 新增/编辑弹窗 -->
+		<div class="detil" v-show="isShow==='add'" key="item3">
+			<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
+			<div class="box-shadow">
+				<by-form :propConfig="addConfig" ref="addFormId">
+					<template v-slot:k3ServerUrl="{value}" class="clearfix">
+						<i class="el-icon-question" title="私有云必须配置金蝶云星空产品地址,K3Cloud/结尾,若为公有云则必须置空"></i>
+						<vxe-input v-model="value.k3ServerUrl" style="width:calc(100% - 25px);margin-left: 10px;"></vxe-input>
+					</template>
+					<template v-slot:status class="clearfix">
+						<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="0">正常</el-radio>
+						<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="1">禁用</el-radio>
+					</template>
+				</by-form>
 			</div>
-			<!-- 新增/编辑弹窗 -->
-			<div class="detil" v-show="isShow==='add'" key="item3">
-				<by-tool :propConfig="toolConfig" @clickHandle="insideTools" ref="byTool" />
-				<div class="box-shadow">
-					<by-form :propConfig="addConfig" ref="addFormId">
-						<template v-slot:k3ServerUrl="{value}" class="clearfix">
-							<i class="el-icon-question" title="私有云必须配置金蝶云星空产品地址,K3Cloud/结尾,若为公有云则必须置空"></i>
-							<vxe-input v-model="value.k3ServerUrl" style="width:calc(100% - 25px);margin-left: 10px;"></vxe-input>
-						</template>
-						<template v-slot:status class="clearfix">
-							<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="0">正常</el-radio>
-							<el-radio class="fl" style="margin-top: 8px;" v-model="radio" :label="1">禁用</el-radio>
-						</template>
-					</by-form>
-				</div>
-			</div>
-		</transition-group>
+		</div>
 	</div>
 </template>
 <script lang="ts">
@@ -442,13 +440,13 @@
 			this.popTitle = '编辑'
 			let loading = this.$loading({ target: '.main-container' });
 			api.single({ id: e.id }, 'maindataMaterialSupplier').then((res : any) => {
-				loading.close();
 				if (res.code === 200) {
 					let data = res.data;
 					this.radio = data.status;
 					this.dialogFormVisible = true;
 					this.$nextTick(() => (this as any).$refs.addFormId.setValue(data));
-				}
+					loading.close();
+				} else loading.close();
 			}).catch(() => loading.close());
 		}
 		// 操作删除
@@ -532,11 +530,5 @@
 				margin-top: 20px;
 			}
 		}
-
-		@media screen and (min-width: 1700px) {
-			.bill-main {
-				min-width: 1450px;
-			}
-		}
 	}
 </style>

+ 77 - 1
src/views/audit/warehousing/index.vue

@@ -841,6 +841,48 @@
 				billConfig.tool.tools = { return: true, save: true, };
 				if (e === 'all') {
 					billConfig.tool.tools = { return: true, save: true, smt: true };
+					if (billConfig.tableConfig[0].table.columns.at(-1).title != '操作') {
+						billConfig.tableConfig[0].table.columns.push({
+							width: 90,
+							title: '操作',
+							action: true,
+							plugins: [{
+								icon: 'el-icon-delete',
+								name: '删除',
+								audit: '',
+								event: {
+									click: (item : any) => {
+										(this as any).changeTable(item)
+									}
+								}
+							}]
+						})
+					};
+					billConfig.tableConfig[0].table.columns[5] = {
+						width: 120,
+						title: '数量',
+						field: 'number',
+						component: 'by-input',
+						compConfig: {
+							attr: {
+								size: 'mini',
+								type: 'number',
+								defaultValue: 1,
+							},
+						}
+					};
+					billConfig.tableConfig[0].table.columns[7] = {
+						width: 90,
+						title: '单价',
+						field: 'unitPrice',
+						component: 'by-input',
+						compConfig: {
+							attr: {
+								size: 'mini',
+								type: 'number',
+							},
+						}
+					};
 					this.tableData = [];
 					(this.$refs.bill as any).setBillTableValue(this.tableData, 0);// 设置第1张单据表格数据
 				}
@@ -854,7 +896,6 @@
 		}
 		// 打开编辑
 		openEdit(e : any) {
-			console.log('编辑this.tabType ==>', this.tabType);
 			e = e.row ? e.row : e;
 			console.log('编辑 ==>', e);
 			let loading = this.$loading({ target: '.main-container' });
@@ -890,6 +931,31 @@
 								}]
 							})
 						};
+						billConfig.tableConfig[0].table.columns[5] = {
+							width: 120,
+							title: '数量',
+							field: 'number',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+									defaultValue: 1,
+								},
+							}
+						};
+						billConfig.tableConfig[0].table.columns[7] = {
+							width: 90,
+							title: '单价',
+							field: 'unitPrice',
+							component: 'by-input',
+							compConfig: {
+								attr: {
+									size: 'mini',
+									type: 'number',
+								},
+							}
+						};
 						billConfig.form.attr.readonly = false; // 设置只读
 						billConfig.tool.tools = { return: true, save: true, };
 						if (this.tabType === 'draftsBox' || parentData.submitState === 0) billConfig.tool.tools = { return: true, save: true, smt: true };
@@ -919,6 +985,16 @@
 				if (e.submitState === 1) readonly.tool.tools = { return: true, returnSmt: true, print: true };
 			}
 			readonly.tableConfig[0].table.columns = readonly.tableConfig[0].table.columns.filter((v : any) => v.title != '操作');
+			readonly.tableConfig[0].table.columns[5] = {
+				width: 120,
+				title: '数量',
+				field: 'number',
+			};
+			readonly.tableConfig[0].table.columns[7] = {
+				width: 90,
+				title: '单价',
+				field: 'unitPrice',
+			};
 			readonly.tableConfig[0].tool.tools = {};
 			let data = e.suborderList;
 			data.map((v : any) => {