Parcourir la source

工单操作控制页面提交

LAPTOP-16IUEB3P\Lenovo il y a 2 ans
Parent
commit
ea03d977e4

+ 1 - 0
package.json

@@ -20,6 +20,7 @@
     "core-js": "^3.25.0",
     "countup.js": "^2.3.2",
     "cropperjs": "^1.5.12",
+    "dayjs": "^1.11.9",
     "echarts": "^5.3.3",
     "echarts-wordcloud": "^2.0.0",
     "ele-admin": "^1.11.2",

+ 34 - 0
src/api/operationControl/index.js

@@ -0,0 +1,34 @@
+import request from '@/utils/request';
+
+/**
+ * 信息
+ */
+export async function getInfo (params) {
+  const res = await request.get('/mes/ordercontrol/getInfo');
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+/**
+ * 保存
+ */
+export async function controlSave (data) {
+  const res = await request.post('/mes/ordercontrol/save', data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+/**
+ * 修改
+ */
+export async function controlUpdate (data) {
+  const res = await request.put('/mes/ordercontrol/update', data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+

+ 0 - 1
src/components/Dict/DictSelection.vue

@@ -1,7 +1,6 @@
 <template>
   <el-select
     v-model="selectVal"
-    size="small"
     style="width: 100%"
     v-bind="$attrs"
     v-on="$listeners"

+ 5 - 2
src/enum/dict.js

@@ -8,6 +8,9 @@ export default {
   生命周期: 'life_cycle',
   网络状态: 'network_status',
   金额单位: 'money_unit',
-  时间单位: 'time_unit'
+  时间单位: 'time_unit',
+  日期方式: 'date_method'
 };
-export const numberList = [];
+export const numberList = [
+	'date_method'
+];

+ 159 - 0
src/views/operationControl/index.vue

@@ -0,0 +1,159 @@
+<template>
+  <div class="ele-body">
+    <el-card shadow="never" v-loading="loading">
+		<div class="form-wrapper">
+		  <el-form
+		    :model="formData"
+		    label-width="0"
+		    :show-message="false"
+		    ref="formRef"
+		  >
+		    <el-descriptions title="" :column="1" border>
+		      <el-descriptions-item
+		        label="日期方式"
+		      >
+					<span slot="label" class="label-required">日期方式</span>
+					<el-form-item prop="formingNum">
+						<DictSelection
+							dictName="日期方式"
+							clearable
+							v-model="formData.dateType"
+							@change="changeType"
+						>
+						</DictSelection>
+					</el-form-item>
+		      </el-descriptions-item>
+		      <el-descriptions-item
+		        label=""
+				v-if="formData.dateType==2"
+		      >
+		        <span slot="label" class="label-required"></span>
+		        <el-form-item prop="appointTime" class="w100">
+		          <el-date-picker
+		            class="w100"
+		            v-model="formData.appointTime"
+		            type="datetime"
+		            value-format="yyyy-MM-dd HH:mm:ss"
+		          ></el-date-picker> </el-form-item
+		      ></el-descriptions-item>
+			  <el-descriptions-item
+			    label="关闭工单"
+			  >
+					<span slot="label" class="label-required">关闭工单</span>
+					<el-form-item prop="orderClose">
+						  <el-radio v-model="formData.orderClose" :label="1">启用</el-radio>
+						  <el-radio v-model="formData.orderClose" :label="0">禁用</el-radio>
+					</el-form-item>
+			  </el-descriptions-item>
+			  <el-descriptions-item
+			    label="报工操作"
+			  >
+					<span slot="label" class="label-required">报工操作</span>
+					<el-form-item prop="reportWork">
+						  <el-radio v-model="formData.reportWork" :label="1">启用</el-radio>
+						  <el-radio v-model="formData.reportWork" :label="0">禁用</el-radio>
+					</el-form-item>
+			  </el-descriptions-item>
+			  <el-descriptions-item
+			    label="货物移动"
+			  >
+					<span slot="label" class="label-required">货物移动</span>
+					<el-form-item prop="goodsMovement">
+						  <el-radio v-model="formData.goodsMovement" :label="1">启用</el-radio>
+						  <el-radio v-model="formData.goodsMovement" :label="0">禁用</el-radio>
+					</el-form-item>
+			  </el-descriptions-item>
+		    </el-descriptions>
+		  </el-form>
+		  <div class="footer">
+		    <el-button type="primary" @click="confirm" :loading="saveLoading">保存</el-button>
+		  </div>
+		</div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+  import dictMixins from '@/mixins/dictMixins';
+  import dayjs from 'dayjs';
+  import {
+    getInfo,
+    controlSave,
+    controlUpdate
+  } from '@/api/operationControl/index.js';
+  export default {
+	mixins: [dictMixins],
+    data () {
+      return {
+		  // 加载状态
+		  loading: false,
+		  formData:{
+			  dateType:1,
+			  orderClose:1,
+			  reportWork:1,
+			  goodsMovement:1,
+			  appointTime:''
+		  },
+		  fnType:1,
+		  saveLoading:false
+      };
+    },
+    computed: {
+    },
+	async created() {
+		this.getInfoData()
+	},
+    methods: {
+		changeType(val){
+			if(val==2){
+				const time = dayjs( new Date().getTime() ).format('YYYY-MM-DD HH:mm:ss');
+				this.$set(this.formData,'appointTime',time)
+			}
+		},
+		async getInfoData(){
+			const res = await getInfo()
+			if(typeof res == 'string'){
+				this.fnType = 1
+			}else{
+				this.formData = res
+				this.fnType = 2
+			}
+		},
+		confirm(){
+			const saveOrUpdate = this.fnType == 1?controlSave:controlUpdate
+			if(this.formData.dateType==1){
+				delete this.formData.appointTime
+			}
+			this.saveLoading = true
+			saveOrUpdate(this.formData).then(res=>{
+				this.$message.success('保存成功');
+				this.saveLoading = false
+				this.getInfoData()
+			}).catch(()=>{
+				this.saveLoading = false
+			})
+		}
+     
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+	.form-wrapper{
+		width: 40%;
+		margin: 10px auto;
+		.el-form-item{
+			margin-bottom: 0;
+		}
+		.w100{
+			width: 100%!important;
+		}
+		.footer{
+			width: 100%;
+			margin: 20px auto 0;
+			display: flex;
+			align-items: center;
+			justify-content: flex-end;
+		}
+	}
+</style>

+ 1 - 1
src/views/produceOrder/index.vue

@@ -28,7 +28,7 @@
           <el-button type="success" @click="handlePicking">领料</el-button>
           <el-button type="success" @click="toEnd()">批量完结</el-button>
           <el-button type="success" @click="handleCreate">创建工单</el-button>
-          <el-button type="success">工单操作控制</el-button>
+          <!-- <el-button type="success">工单操作控制</el-button> -->
         </template>
         <template v-slot:code="{ row }">
           <el-link type="primary" :underline="false" @click="goDetail(row)">