Просмотр исходного кода

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-aps into dev

quwangxin 2 лет назад
Родитель
Сommit
f92db58447

+ 18 - 0
src/api/saleOrder/index.js

@@ -22,3 +22,21 @@ export async function getResourcesTree () {
   return Promise.reject(new Error(res.data.message));
 }
 
+// 批量导入文件
+export async function importFile (data) {
+  const res = await request.post('/aps/salesorder/importFile',data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+
+// 获取销售订单列表
+export async function getPageList (data) {
+  const res = await request.get(`/aps/salesorder/page`, {params:data});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 106 - 26
src/views/saleOrder/components/order-search.vue

@@ -9,68 +9,82 @@
     <el-row :gutter="15">
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="销售订单号:">
-          <el-input v-model="where.ddh" placeholder="请输入"></el-input>
+          <el-input v-model="where.code" placeholder="请输入"></el-input>
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="产品编码:">
-					<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+					<el-input v-model="where.productCode" placeholder="请输入"></el-input>
         </el-form-item>
       </el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="行号:">
-			<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+			<el-input v-model="where.lineNumber" placeholder="请输入"></el-input>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="牌号:">
-			<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+			<el-input v-model="where.brandNo" placeholder="请输入"></el-input>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="型号:">
-			<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+			<el-input v-model="where.model" placeholder="请输入"></el-input>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="订单来源:">
-		 <DictSelection dictName="订单来源" clearable v-model="where.staus">
+		 <DictSelection dictName="订单来源" clearable v-model="where.orderSource">
 		 </DictSelection>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="客户名称:">
-			<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+			<el-input v-model="where.customerName" placeholder="请输入"></el-input>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="订单类型:">
-			<DictSelection dictName="订单类型" clearable v-model="where.staus">
+			<DictSelection dictName="订单类型" clearable v-model="where.orderType">
 			</DictSelection>
 	  </el-form-item>
 	</el-col>
 	<el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	  <el-form-item label="生产状态:">
-			<DictSelection dictName="生产状态" clearable v-model="where.staus">
-			</DictSelection>
+			<el-select v-model="where.status" placeholder="请选择">
+				<el-option
+				   v-if="chooseName=='first'"
+					v-for="item in awaitProcuct"
+					:key="item.value"
+					:label="item.label"
+					:value="item.value">
+				</el-option>
+				<el-option
+				   v-if="chooseName=='second'"
+					v-for="item in alreadyProcuct"
+					:key="item.value"
+					:label="item.label"
+					:value="item.value">
+				</el-option>
+			</el-select>
 	  </el-form-item>
 	</el-col>
 	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	    <el-form-item label="按单按库:">
-	  		<DictSelection dictName="按单按库" clearable v-model="where.staus">
+	  		<DictSelection dictName="按单按库" clearable v-model="where.orderLibraryType">
 	  		</DictSelection>
 	    </el-form-item>
 	  </el-col>
 	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	    <el-form-item label="业务员:">
-	  		<el-input v-model="where.ddh" placeholder="请输入"></el-input>
+	  		<el-input v-model="where.salesman" placeholder="请输入"></el-input>
 	    </el-form-item>
 	  </el-col>
-	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+<!-- 	  <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
 	    <el-form-item label="组合编码:">
 	  		<el-input v-model="where.ddh" placeholder="请输入"></el-input>
 	    </el-form-item>
-	  </el-col>
+	  </el-col> -->
 	  <el-col v-bind="styleResponsive ? { lg: 12, md: 12 } : { span: 12 }">
 	  		  <el-form-item label="交货日期:">
 	  			<el-date-picker
@@ -110,7 +124,18 @@
 			  <el-button type="primary">订单刷新</el-button>
 			  <el-button type="success" @click="toCreate">创建订单</el-button>
 			  <!-- <el-button type="info" @click="toGroup">订单组合</el-button> -->
-			  <el-button type="warning" @click="toImport">批量导入</el-button>
+			  <!-- <el-button type="warning" @click="toImport">批量导入</el-button> -->
+			  <el-upload
+				class="avatar-uploader"
+				action="#"
+				:show-file-list="false"
+				:http-request="uploadFile"
+				:before-upload="beforeUpload"
+				:on-change="handleChange"
+			  >
+				<el-button type="warning">批量导入</el-button>
+			  </el-upload>
+			  <el-button type="info">下载模板</el-button>
 			  <el-button type="danger">批量删除</el-button>
 		  </el-form-item>			  
 	  </el-col>
@@ -129,7 +154,11 @@
 	import ImportException from '../components/import-exception.vue'
 	import CreateOrder from '../components/create-order.vue'
 	import GroupOrder from '../components/group-order.vue'
+	import { importFile } from '@/api/saleOrder';
 	export default {
+		props: {
+			
+		},
 		components: {
 		  ImportException,
 		  CreateOrder,
@@ -138,17 +167,37 @@
     data() {
       // 默认表单数据
       const defaultWhere = {
-		name:'',
-        ruleName: '',
-        code: '',
-        groupId:'',
-        status:'',
-		categoryLevelId:''
+		 code:'',
+		 productCode:'',
+		 customerName:'',
+		 lineNumber:'',
+		 model:'',
+		 brandNo:'',
+		 orderSource:'',
+		 orderType:'',
+		 status:'',
+		 orderLibraryType:'',
+		 salesman:'',
+		 
+		 
       };
       return {
         // 表单数据
         where: { ...defaultWhere },
-        time:[]
+        time:[],
+		fileList:[],
+		awaitProcuct:[
+			{value:0,label:'待排产'}
+		],
+		alreadyProcuct:[
+			{value:1,label:'待发布'},
+			{value:2,label:'发布失败'},
+			{value:3,label:'待生产'},
+			{value:4,label:'生产中'},
+			{value:5,label:'已完成'},
+			{value:6,label:'已延期'}
+		],
+		chooseName:'first'
       };
     },
     computed: {
@@ -160,6 +209,9 @@
     created(){
     },
     methods: {
+	  setData(activeName){
+		  this.chooseName = activeName
+	  },
       /* 搜索 */
       search() {
         if(this.time.length){
@@ -187,15 +239,43 @@
 		 this.$router.push({
 		    path: '/saleOrder/salesToProduction'
 		 });
-	  }
+	  },
+	  
+	   handleChange(file, fileList) {
+			this.fileList = fileList;
+			console.log(fileList)
+		},
+	  
+	  //上传限制
+	  beforeUpload (file) {
+	    const isLt10M = file.size / 1024 / 1024 < 10;
+	    if (!isLt10M) {
+	      this.$message.error('上传文件大小不能超过 10MB!');
+	    }
+	    return isLt10M;
+	  },
+	  //文件上传
+	  uploadFile (param) {
+		  let fd = new FormData();
+		  this.fileList.forEach(item=>{
+			  fd.append("importExcel",item.raw);
+		  })
+		importFile(fd).then(res=>{
+			this.$emit('search', this.where);
+		})
+	  },
 	  
     }
   };
 </script>
 <style lang="scss" scoped>
     .ele-form-actions{
-			display:flex;
-			align-items: center;
-			justify-content: flex-end;
+		display:flex;
+		align-items: center;
+		justify-content: flex-end;
+	}
+	.avatar-uploader{
+		display: inline-block;
+		margin: 0 10px;
 	}
 </style>

+ 11 - 8
src/views/saleOrder/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="ele-body">
     <el-card shadow="never" v-loading="loading">
-      <order-search @search="reload"> </order-search>
+      <order-search ref="searchRefs" @search="reload"> </order-search>
 	  <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
 	    <el-tab-pane label="待排产" name="first"></el-tab-pane>
 	    <el-tab-pane label="已排产" name="second"></el-tab-pane>
@@ -51,7 +51,7 @@
 <script>
   import OrderSearch from './components/order-search.vue';
   import OrderDetail from './components/order-detail.vue';
-  import { getResourcesTree } from '@/api/saleOrder';
+  import { getPageList  } from '@/api/saleOrder';
   import dictMixins from '@/mixins/dictMixins';
   export default {
     mixins: [dictMixins],
@@ -230,11 +230,13 @@
 	
       /* 表格数据源 */
       datasource ({ page, limit, where, order }) {
-        return getResourcesTree({
-          pageNum: page,
-          size: limit,
-          ...where
-        });
+		  return []
+    //     return getPageList({
+    //       pageNum: page,
+    //       size: limit,
+    //       ...where,
+		  
+    //     });
       },
 
       /* 刷新表格 */
@@ -243,7 +245,8 @@
       },
 	  
 	  handleClick(tab, event) {
-		  console.log('activeName',this.activeName);
+		  this.$refs.searchRefs.setData(this.activeName)
+		  // console.log('activeName',this.activeName);
 	  },
 	  openDetails(row){
 		  this.$refs.detailDialog.open()