ysy 2 lat temu
rodzic
commit
b47ed394a7

+ 14 - 14
src/views/materialPlan/components/plan-edit-dialog.vue

@@ -9,6 +9,12 @@
           </el-form-item>
         </el-col>
 
+        <el-col :span="12">
+          <el-form-item label="备注" prop="remark">
+            <el-input placeholder="备注" v-model="formData.remark"></el-input>
+          </el-form-item>
+        </el-col>
+
 
 
 
@@ -34,9 +40,7 @@
           <el-input placeholder="请输入" readonly :value="row.code || row.salesOrderCode"></el-input>
         </template>
 
-        <template v-slot:remark="{ row }">
-          <el-input placeholder="备注" v-model="row.remark"></el-input>
-        </template>
+
 
         <template v-slot:productionPlanId="{ row }">
           <el-link type="primary" v-if="!row.productionPlanId" :underline="false"
@@ -244,14 +248,7 @@ export default {
           label: '欠交数量',
           align: 'center'
         },
-        {
-          prop: 'remark',
-          label: '备注',
-          slot: 'remark',
-          showOverflowTooltip: true,
-          align: 'center',
-          minWidth: 110
-        },
+
 
         {
           prop: 'productionPlanId',
@@ -280,7 +277,7 @@ export default {
 
         {
           width: 92,
-          label: '',
+          label: '序号',
           prop: 'sort',
           slot: 'sort',
           align: 'center',
@@ -360,7 +357,7 @@ export default {
         name: [
           {
             required: true,
-            message: '请选择物料',
+            message: '请输入配料计划名称',
             trigger: ['blur', 'change']
           }
         ],
@@ -369,6 +366,7 @@ export default {
       },
       formData: {
         name: '',
+        remark: '',
         detailRemoveIds: [],
         materialRemoveIds: []
 
@@ -390,6 +388,7 @@ export default {
     getDetail(id) {
       getById(id).then(res => {
         this.$set(this.formData, 'name', res.name)
+        this.$set(this.formData, 'remark', res.remark)
         this.formData['id'] = res.id
         this.$refs.table.setData([...res.salesOrderList]);
 
@@ -581,6 +580,7 @@ export default {
 <style lang="scss" scoped>
 :deep(.el-table__expanded-cell) {
 
-  padding-bottom: 120px !important;
+  padding-bottom: 30px !important;
+  border-bottom: 12px solid #CCFFCC !important;
 }
 </style>

+ 31 - 22
src/views/materialPlan/components/produce-edit-dialog.vue

@@ -9,6 +9,15 @@
           </el-form-item>
         </el-col>
 
+        <el-col :span="12">
+          <el-form-item label="备注" prop="remark">
+            <el-input placeholder="备注" v-model="formData.remark"></el-input>
+          </el-form-item>
+        </el-col>
+
+
+       
+
 
 
 
@@ -23,7 +32,7 @@
 
         <template v-slot:toolbar>
           <el-button size="small" type="primary" icon="el-icon-plus" class="ele-btn-icon" @click="showAdd">
-            添加销售订单
+            添加生产订单
           </el-button>
         </template>
 
@@ -34,9 +43,7 @@
           <el-input placeholder="请输入" readonly :value="row.code || row.salesOrderCode"></el-input>
         </template>
 
-        <template v-slot:remark="{ row }">
-          <el-input placeholder="备注" v-model="row.remark"></el-input>
-        </template>
+     
 
         <template v-slot:productionPlanId="{ row }">
           <el-link type="primary" v-if="!row.productionPlanId" :underline="false"
@@ -50,7 +57,7 @@
             <el-link type="primary" :underline="false" @click="categorySelect(row)">
               添加物料
             </el-link>
-            <el-popconfirm class="ele-action" title="确定要删除此销售订单吗?" @confirm="remove(row, $index)">
+            <el-popconfirm class="ele-action" title="确定要删除此生产订单吗?" @confirm="remove(row, $index)">
               <template v-slot:reference>
                 <el-link type="danger" :underline="false" icon="el-icon-delete">
                   删除
@@ -115,7 +122,7 @@
     </div>
 
 
-    <saleOrderPop ref="saleOrderRef" @chooseOrder="chooseOrder"></saleOrderPop>
+    <workOrderPop ref="workOrderRef" @chooseOrder="chooseOrder"></workOrderPop>
 
 
 
@@ -128,13 +135,13 @@
 
 <script>
 
-import saleOrderPop from './saleOrderPop.vue'
+import workOrderPop from './workOrderPop.vue'
 import ProductModal from './ProductModal.vue'
 import { listBomBySalesOrderIds, listBomBySalesOrderId, save, getById } from '@/api/materialPlan/index';
 import ProductionVersion from '@/components/CreatePlan/ProductionVersion2.vue';
 export default {
   components: {
-    saleOrderPop,
+    workOrderPop,
     ProductModal,
     ProductionVersion
 
@@ -163,12 +170,18 @@ export default {
 
         {
           prop: 'code',
-          label: '销售订单号',
+          label: '生产订单号',
           slot: 'code',
           showOverflowTooltip: true,
           align: 'center',
           minWidth: 170
         },
+        {
+          prop: 'salesOrderId',
+          label: '销售订单号',
+          align: 'center',
+          minWidth: 110
+        },
         {
           prop: 'customerName',
           label: '客户名称',
@@ -225,14 +238,7 @@ export default {
           label: '欠交数量',
           align: 'center'
         },
-        {
-          prop: 'remark',
-          label: '备注',
-          slot: 'remark',
-          showOverflowTooltip: true,
-          align: 'center',
-          minWidth: 110
-        },
+   
 
         {
           prop: 'productionPlanId',
@@ -324,7 +330,7 @@ export default {
         name: [
           {
             required: true,
-            message: '请选择物料',
+            message: '请输入配料计划名称',
             trigger: ['blur', 'change']
           }
         ],
@@ -333,6 +339,7 @@ export default {
       },
       formData: {
         name: '',
+        remark: '',
         detailRemoveIds: [],
         materialRemoveIds: []
 
@@ -354,6 +361,7 @@ export default {
     getDetail(id) {
       getById(id).then(res => {
         this.$set(this.formData, 'name', res.name)
+        this.$set(this.formData, 'remark', res.remark)
         this.formData['id'] = res.id
         this.$refs.table.setData([...res.salesOrderList]);
 
@@ -367,7 +375,7 @@ export default {
           let _arr = this.$refs.table.getData() ?? []
 
           if (_arr.length == 0) {
-            this.$message.info('请添加销售订单');
+            this.$message.info('请添加生产订单');
             return false
           }
           let _arr2 = []
@@ -415,7 +423,7 @@ export default {
     showAdd() {
       this.tableData = this.$refs.table.getData();
 
-      this.$refs.saleOrderRef.open(this.tableData)
+      this.$refs.workOrderRef.open(this.tableData)
     },
 
     chooseOrder(list) {
@@ -542,7 +550,8 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-:deep(.el-table__expanded-cell){
-  border-bottom: 4px solid #1890ff !important;
+:deep(.el-table__expanded-cell) {
+
+  padding-bottom: 120px !important;
 }
 </style>

+ 125 - 0
src/views/materialPlan/components/workOrder-search.vue

@@ -0,0 +1,125 @@
+<!-- 搜索表单 -->
+<template>
+    <el-form label-width="90px" class="ele-form-search" @keyup.enter.native="search" @submit.native.prevent>
+        <el-row :gutter="15">
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="生产工单号:">
+                    <el-input clearable v-model="where.code" placeholder="请输入" />
+                </el-form-item>
+            </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="计划编码:">
+                    <el-input clearable v-model="where.productionPlanCode" placeholder="请输入" />
+                </el-form-item>
+            </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="工艺路线:">
+                    <el-input clearable v-model="where.produceRoutingName" placeholder="请输入" />
+                </el-form-item>
+            </el-col>
+
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="产品名称:">
+                    <el-input clearable v-model="where.productName" placeholder="请输入" />
+                </el-form-item>
+            </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label="状态:">
+                    <el-select v-model="where.status" placeholder="请选择">
+                        <el-option v-for="item in statusOpt" :key="item.value" :label="item.label" :value="item.value">
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+            </el-col>
+
+
+
+
+
+
+
+
+            <el-col v-bind="styleResponsive ? { lg: 9, md: 12 } : { span: 9 }">
+                <el-form-item label="创建时间:">
+                    <el-date-picker class="w100" v-model="where.createTime" type="daterange" range-separator="至"
+                        start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss"
+                        :default-time="['00:00:00', '23:59:59']">
+                    </el-date-picker>
+                </el-form-item>
+            </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+                <el-form-item label-width="0px">
+                    <el-button type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
+                        查询
+                    </el-button>
+                    <el-button @click="reset" icon="el-icon-refresh-left" type="primary">重置</el-button>
+                </el-form-item>
+            </el-col>
+        </el-row>
+    </el-form>
+</template>
+  
+<script>
+
+export default {
+    props: [],
+    data() {
+        // 默认表单数据
+        const defaultWhere = {
+            code: '',
+            productionPlanCode: '',
+            produceRoutingName: '',
+            productName: '',
+            status: '',
+            createTime: []
+        };
+        return {
+            // 表单数据
+            where: { ...defaultWhere },
+            statusOpt: [
+                { label: '待下达', value: 8 },
+                { label: '待生产', value: 4 },
+                { label: '生产中', value: 5 }
+            ],
+            teamList: [],
+        };
+    },
+    computed: {
+        // 是否开启响应式布局
+        styleResponsive() {
+            return this.$store.state.theme.styleResponsive;
+        }
+    },
+    watch: {},
+    created() {
+
+    },
+    methods: {
+        /* 搜索 */
+        search() {
+            const where = { ...this.where };
+            if (where.createTime?.length) {
+                where.createTimeStart = where.createTime[0];
+                where.createTimeEnd = where.createTime[1];
+            }
+            delete where.createTime;
+            this.$emit('search', where);
+        },
+        /*  重置 */
+        reset() {
+            this.where = { ...this.defaultWhere };
+            this.search();
+        },
+
+
+    }
+};
+</script>
+<style lang="scss" scoped>
+.ele-form-actions {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
+}
+</style>
+  

+ 54 - 43
src/views/materialPlan/components/workOrderPop.vue

@@ -3,7 +3,7 @@
         :close-on-click-modal="false" :close-on-press-escape="false" append-to-body width="70%">
 
         <el-card shadow="never">
-            <saleOrderSearch @search="reload" />
+            <workOrderSearch @search="reload" />
 
             <!-- 数据表格 -->
             <ele-pro-table ref="table" :columns="columns" :datasource="datasource" :selection.sync="selection" row-key="id">
@@ -21,16 +21,16 @@
 </template>
   
 <script>
-import saleOrderSearch from './saleOrder-search'
-import { getPageList } from '@/api/saleOrder';
+import workOrderSearch from './workOrder-search'
+import { getList } from '@/api/workOrder/index.js';
 import dictMixins from '@/mixins/dictMixins';
 export default {
-    components: { saleOrderSearch },
+    components: { workOrderSearch },
     mixins: [dictMixins],
     data() {
         return {
             visible: false,
-            title: '销售订单',
+            title: '生产订单',
 
             // 表格列配置
             columns: [
@@ -40,80 +40,91 @@ export default {
                     width: 45,
                     align: 'center',
                     selectable: (row, index) => {
-                        return !this.tableData.some((it) => it.id == row.id ||  it.salesOrderId == row.id);
+                        return !this.tableData.some((it) => it.id == row.id || it.salesOrderId == row.id);
                     },
                     reserveSelection: true,
                     fixed: 'left'
                 },
                 {
                     prop: 'code',
-                    label: '销售订单号',
+                    label: '生产订单号',
                     align: 'center',
-                    showOverflowTooltip: true,
-                    minWidth: 150,
-                    slot: 'code'
+                    minWidth: 110
                 },
                 {
-                    prop: 'lineNumber',
-                    label: '号',
+                    prop: 'salesOrderId',
+                    label: '销售订单号',
                     align: 'center',
-                    showOverflowTooltip: true
+                    minWidth: 110
                 },
                 {
-                    prop: 'productCode',
-                    label: '产品编码',
-                    align: 'center',
-                    showOverflowTooltip: true,
-                    minWidth: 140
+                    prop: 'productionPlanCode',
+                    label: '计划编号',
+                    align: 'center'
+                },
+                {
+                    prop: 'produceRoutingName',
+                    label: '工艺路线',
+                    align: 'center'
                 },
-
                 {
                     prop: 'productName',
                     label: '产品名称',
-                    align: 'center',
-                    minWidth: 120
+                    align: 'center'
                 },
-            
                 {
-                    prop: 'brandNo',
-                    label: '牌号',
-                    align: 'center'
+                    prop: 'formingNum',
+                    label: '要求成型数量',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 110
                 },
                 {
-                    prop: 'model',
-                    label: '型号',
+                    prop: 'formingWeight',
+                    label: '要求成型重量',
                     align: 'center',
-                    minWidth: 120
+                    showOverflowTooltip: true,
+                    minWidth: 110
                 },
                 {
-                    prop: 'productSumWeight',
-                    label: '合同重量',
-                    align: 'center'
+                    prop: 'planStartTime',
+                    label: '计划开始时间',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 110
                 },
                 {
-                    prop: 'contractNum',
-                    label: '合同数量',
-                    align: 'center'
+                    prop: 'createTime',
+                    label: '创建时间',
+                    align: 'center',
+                    showOverflowTooltip: true,
+                    minWidth: 110
                 },
 
                 {
-                    prop: 'status',
-                    label: '生产状态',
+                    slot: 'status',
+                    label: '状态',
                     align: 'center',
-                    showOverflowTooltip: true,
-                    formatter: (_row, _column, cellValue) => {
-                        return this.getDictValue('生产状态', _row.status);
+                    formatter: (row) => {
+                        const obj = this.statusOpt.find((i) => i.value == row.status);
+                        return obj && obj.label;
                     }
                 },
 
 
+
+            ],
+            statusOpt: [
+                { label: '待生产', value: 4 },
+                { label: '生产中', value: 5 },
+                { label: '待下达', value: 8 }
             ],
 
             // 表格选中数据
             selection: [],
 
             tableData: [],
-            current: null
+            current: null,
 
         }
     },
@@ -122,7 +133,7 @@ export default {
 
     },
     created() {
-        this.requestDict('生产状态');
+
     },
     methods: {
 
@@ -140,8 +151,8 @@ export default {
 
         /* 表格数据源 */
         async datasource({ page, limit, where }) {
-            where.status = [1, 2,  3, 4, 7,8]
-            const data = await getPageList({
+
+            const data = await getList({
                 ...where,
                 pageNum: page,
                 size: limit