From b4edf6ce42debe4edcc85414d9f6c0d41f480587 Mon Sep 17 00:00:00 2001
From: cuilei <ray_tsu1@163.com>
Date: 星期五, 20 六月 2025 11:36:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue |  231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 231 insertions(+), 0 deletions(-)

diff --git a/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue b/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue
new file mode 100644
index 0000000..4a26886
--- /dev/null
+++ b/src/views/eam/purchase/modules/EamEquipmentPurchasePlanForm.vue
@@ -0,0 +1,231 @@
+<template>
+  <a-spin :spinning="confirmLoading">
+    <j-form-container :disabled="formDisabled">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
+        <a-row>
+          <a-col :span="12">
+            <a-form-model-item label="閲囪喘璁″垝缂栫爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCode">
+              <a-input v-model="model.planCode" placeholder="绯荤粺鑷姩鐢熸垚" disabled ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="閲囪喘璁″垝鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planName">
+              <a-input v-model="model.planName" placeholder="璇疯緭鍏ラ噰璐鍒掑悕绉�"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12" v-if="disabled">
+            <a-form-model-item label="璁″垝鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStatus">
+              <j-dict-select-tag dict-code="equipment_purchase_plan_status" placeholder="璇烽�夋嫨璁″垝鐘舵��"
+                                 v-model="model.planStatus" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="鍨嬪彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentModel">
+              <a-input v-model="model.equipmentModel" placeholder="璇疯緭鍏ュ瀷鍙�"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="閲囪喘鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="purchaseNumber">
+              <a-input-number v-model="model.purchaseNumber" placeholder="璇疯緭鍏ラ噰璐暟閲�" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="棰勮鍗曚环" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="estimatedUnitPrice">
+              <a-input-number v-model="model.estimatedUnitPrice" placeholder="璇疯緭鍏ラ璁″崟浠�" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="鎬讳环" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="totalPrice">
+              <a-input-number v-model="model.totalPrice" placeholder="璇疯緭鍏ユ�讳环" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="鍚堝悓鎬婚噾棰�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="overallContractAmount">
+              <a-input-number v-model="model.overallContractAmount" placeholder="璇疯緭鍏ュ悎鍚屾�婚噾棰�" style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="绠$悊鍒嗙被" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentImportance">
+              <j-dict-select-tag dict-code="equipment_abc_flag" placeholder="璇烽�夋嫨绠$悊鍒嗙被"
+                                 v-model="model.equipmentImportance" />
+            </a-form-model-item>
+          </a-col>
+<!--          <a-col :span="12">-->
+<!--            <a-form-model-item label="璁″垝绫诲埆" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planCategory">-->
+<!--              <a-input v-model="model.planCategory" placeholder="璇疯緭鍏ヨ鍒掔被鍒�"  ></a-input>-->
+<!--            </a-form-model-item>-->
+<!--          </a-col>-->
+          <a-col :span="12">
+            <a-form-model-item label="鐢宠浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant">
+              <j-search-select-tag  placeholder="璇烽�夋嫨鐢宠浜�" v-model="model.applicant" dict="sys_user,realname, username, del_flag=0 and status=1"/>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="鐢宠杞﹂棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicantProduction">
+              <a-tree-select v-model="model.applicantProduction"
+                             style="width: 100%"
+                             :tree-data="treeData"
+                             :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+                             placeholder="璇烽�夋嫨浣跨敤杞﹂棿"
+                             allow-clear
+                             tree-default-expand-all
+                >
+              </a-tree-select>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="璁″垝寮�濮嬫棩鏈�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planStartDate">
+              <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="璇烽�夋嫨璁″垝寮�濮嬫棩鏈�" v-model="model.planStartDate"  style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="璁″垝瀹屾垚鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planEndDate">
+              <j-date :show-time="true" dateFormat="YYYY-MM-DD HH" placeholder="璇烽�夋嫨璁″垝瀹屾垚鏃ユ湡" v-model="model.planEndDate"  style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="璁″垝鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="planDescription">
+              <a-textarea v-model="model.planDescription" placeholder="璇疯緭鍏ヨ鍒掓弿杩�"  ></a-textarea>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="瀹炴柦鍙婂崗鍔╅儴闂�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="relatedDeparts">
+              <a-input v-model="model.relatedDeparts" placeholder="璇疯緭鍏ュ疄鏂藉強鍗忓姪閮ㄩ棬"  ></a-input>
+            </a-form-model-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
+              <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+      </a-form-model>
+    </j-form-container>
+  </a-spin>
+</template>
+
+<script>
+
+  import { httpAction, getAction } from '@/api/manage'
+  import { validateDuplicateValue } from '@/utils/util'
+
+  export default {
+    name: 'EamEquipmentPurchasePlanForm',
+    components: {
+    },
+    props: {
+      //琛ㄥ崟绂佺敤
+      disabled: {
+        type: Boolean,
+        default: false,
+        required: false
+      }
+    },
+    data () {
+      return {
+        model:{
+         },
+        treeData: [],
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+        confirmLoading: false,
+        validatorRules: {
+           planName: [
+              { required: true, message: '璇疯緭鍏ラ噰璐鍒掑悕绉�!'},
+           ],
+           equipmentModel: [
+              { required: true, message: '璇疯緭鍏ュ瀷鍙�!'},
+           ],
+           purchaseNumber: [
+              { required: true, message: '璇疯緭鍏ラ噰璐暟閲�!'},
+           ],
+           estimatedUnitPrice: [
+              { required: true, message: '璇疯緭鍏ラ璁″崟浠�!'},
+           ],
+           totalPrice: [
+              { required: true, message: '璇疯緭鍏ユ�讳环!'},
+           ],
+           overallContractAmount: [
+              { required: true, message: '璇疯緭鍏ュ悎鍚屾�婚噾棰�!'},
+           ],
+           planStartDate: [
+              { required: true, message: '璇疯緭鍏ヨ鍒掑紑濮嬫棩鏈�!'},
+           ],
+           planEndDate: [
+              { required: true, message: '璇疯緭鍏ヨ鍒掑畬鎴愭棩鏈�!'},
+           ],
+        },
+        url: {
+          add: "/eam/eamEquipmentPurchasePlan/add",
+          edit: "/eam/eamEquipmentPurchasePlan/edit",
+          queryById: "/eam/eamEquipmentPurchasePlan/queryById",
+          loadWorkShopOptions:'/mdc/mdcProduction/loadProductionTreeOptions'
+        }
+      }
+    },
+    computed: {
+      formDisabled(){
+        return this.disabled
+      },
+    },
+    created () {
+       //澶囦唤model鍘熷鍊�
+      this.modelDefault = JSON.parse(JSON.stringify(this.model));
+      this.loadWorkShopTree()
+    },
+    methods: {
+      loadWorkShopTree() {
+        //鍔犺浇杞﹂棿閫夋嫨鏍�
+        getAction(this.url.loadWorkShopOptions).then(res => {
+          if (res.success) {
+            this.treeData = [...res.result]
+          }else {
+            that.$message.warning(res.message)
+          }
+        })
+      },
+      add () {
+        this.edit(this.modelDefault);
+      },
+      edit (record) {
+        this.model = Object.assign({}, record);
+        this.visible = true;
+      },
+      submitForm () {
+        const that = this;
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = true;
+            let httpurl = '';
+            let method = '';
+            if(!this.model.id){
+              httpurl+=this.url.add;
+              method = 'post';
+            }else{
+              httpurl+=this.url.edit;
+               method = 'put';
+            }
+            httpAction(httpurl,this.model,method).then((res)=>{
+              if(res.success){
+                that.$message.success(res.message);
+                that.$emit('ok');
+              }else{
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+            })
+          }
+
+        })
+      },
+    }
+  }
+</script>
\ No newline at end of file

--
Gitblit v1.9.3