Browse Source

选型完成

codeMan 1 year ago
parent
commit
2679f3e6f7

+ 8 - 10
src/optionSystem/FProductManage/modules/diefa/diefaAdd.vue

@@ -66,7 +66,12 @@
                                         </el-input>
                                     </div>
                                 </div>
-
+                                <div class="option-line">
+                                    <div class="item">
+                                        <div class="label">驱动方式:</div>
+                                        <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                                    </div>
+                                </div>
                                 <div class="option-line">
                                     <div class="item">
                                         <div class="label">公称通径:</div>
@@ -109,13 +114,6 @@
                                         </el-select>
                                     </div>
                                 </div>
-
-                                <div class="option-line">
-                                    <div class="item">
-                                        <div class="label">驱动方式:</div>
-                                        <MySelect @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
-                                    </div>
-                                </div>
                                 <!--光头-->
                                 <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 25px">
                                     <template v-slot:customcol="scope">
@@ -513,7 +511,7 @@ export default {
             }
             if (type != 'excelParam') {
                 for (let i = index; i < whereKeys.length - 1; i++) {
-                    if (!position && whereKeys[i].indexOf('condition') != -1) continue
+                    if ((!position && whereKeys[i].indexOf('condition') != -1)) continue
                     this[type].content.where[whereKeys[i]] = ''            
                 }
             } else if (type == 'excelParam') {
@@ -548,7 +546,7 @@ export default {
                     if (isbreak) break;
                     if (whereKeys[i].indexOf('condition') == -1) {
                         if (that.$refs.guangtouRef.list.length) {
-                            if (i >= index-1) {
+                            if (i >= index-1 && whereKeys[i]!='drivetype') {
                                 that[whereKeys[i]] = that.$refs.guangtouRef.list[0].option[whereKeys[i]]
                                 if (that[whereKeys[i]].length == 1) {
                                     if (that.guangtouParam.content.where[position]) that.guangtouParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value

+ 8 - 10
src/optionSystem/FProductManage/modules/diefa/edit.vue

@@ -66,7 +66,12 @@
                                             </el-input>
                                         </div>
                                     </div>
-
+                                    <div class="option-line">
+                                        <div class="item">
+                                            <div class="label">驱动方式:</div>
+                                            <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                                        </div>
+                                    </div>
                                     <div class="option-line">
                                         <div class="item">
                                             <div class="label">公称通径:</div>
@@ -109,13 +114,6 @@
                                             </el-select>
                                         </div>
                                     </div>
-
-                                    <div class="option-line">
-                                        <div class="item">
-                                            <div class="label">驱动方式:</div>
-                                            <MySelect @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
-                                        </div>
-                                    </div>
                                     <!--光头-->
                                     <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 25px">
                                         <template v-slot:customcol="scope">
@@ -508,7 +506,7 @@
             }
             if (type != 'excelParam') {
                 for (let i = index; i < whereKeys.length - 1; i++) {
-                    if (!position && whereKeys[i].indexOf('condition') != -1) continue
+                    if ((!position && whereKeys[i].indexOf('condition') != -1)) continue
                     this[type].content.where[whereKeys[i]] = ''            
                 }
             } else if (type == 'excelParam') {
@@ -543,7 +541,7 @@
                     if (isbreak) break;
                     if (whereKeys[i].indexOf('condition') == -1) {
                         if (that.$refs.guangtouRef.list.length) {
-                            if (i >= index-1) {
+                            if (i >= index-1 && whereKeys[i]!='drivetype') {
                                 that[whereKeys[i]] = that.$refs.guangtouRef.list[0].option[whereKeys[i]]
                                 if (that[whereKeys[i]].length == 1) {
                                     if (that.guangtouParam.content.where[position]) that.guangtouParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value

+ 259 - 0
src/optionSystem/executeManage/modules/add copy.vue

@@ -0,0 +1,259 @@
+<template>
+  <div>
+    <el-button size="small" type="primary" @click="onShow">新 建</el-button>
+    <el-drawer
+      title="新建执行器"
+      :visible.sync="drawer"
+      size="664px"
+      direction="rtl"
+      append-to-body
+      :show-close="false">
+      <div class="drawer__panel">
+        <el-row>
+          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
+            <el-col :span="24">
+              <el-form-item label="执行器料号" label-width="130px" prop="itemno">
+                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入执行器料号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="名称" label-width="130px" prop="itemname">
+                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="执行器类型" label-width="130px" prop="actuatortype">
+                <el-select v-model="form.actuatortype" style="width:100%" placeholder="请选择执行器类型">
+                  <el-option
+                    v-for="item in actuatortype()"
+                    :label="item.remarks"
+                    :value="item.value"
+                    :key="item.index"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="执行器驱动类型" label-width="130px" prop="actuatordrivetype">
+                <el-select v-model="form.actuatordrivetype" style="width:100%" placeholder="请选择执行器驱动类型">
+                  <el-option
+                    v-for="item in actuatordrivetype()"
+                    :label="item.remarks"
+                    :value="item.value"
+                    :key="item.index"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
+                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="型号" label-width="130px" prop="model">
+                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="转速" label-width="130px" prop="speed">
+                <el-input  v-model="form.speed" autocomplete="off" placeholder="请输入转速"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="法兰号" label-width="130px" prop="flh">
+                <el-input  v-model="form.flh" autocomplete="off" placeholder="请输入法兰号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="手轮速比" label-width="130px" prop="handwheelratio">
+                <el-input  v-model="form.handwheelratio" autocomplete="off" placeholder="请输入手轮速比"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="电源电压" label-width="130px" prop="supplyvoltage">
+                <el-input  v-model="form.supplyvoltage" autocomplete="off" placeholder="请输入电源电压"></el-input>
+              </el-form-item>
+            </el-col>
+            
+            <el-col :span="24">
+              <el-form-item label="重量" label-width="130px" prop="weight">
+                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
+              </el-form-item>
+            </el-col>
+            
+            <el-col :span="24">
+              <el-form-item label="扭矩" label-width="130px" prop="torque">
+                <el-input  v-model="form.torque" autocomplete="off" placeholder="请输入扭矩"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="额定功率" label-width="130px" prop="ratedpower">
+                <el-input  v-model="form.ratedpower" autocomplete="off" placeholder="请输入额定功率"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="额定电流" label-width="130px" prop="ratedcurrent">
+                <el-input  v-model="form.ratedcurrent" autocomplete="off" placeholder="请输入额定电流"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="90°最大运行时间" label-width="130px" prop="maxruntime">
+                <el-input  v-model="form.maxruntime" autocomplete="off" placeholder="请输入90°最大运行时间"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
+                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
+                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="结构" label-width="130px" prop="bodystructure">
+                <el-select v-model="form.bodystructure" style="width:100%" placeholder="请选择结构">
+                  <el-option
+                    v-for="item in bodystructure()"
+                    :label="item.remarks"
+                    :value="item.value"
+                    :key="item.index"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="功能" label-width="130px" prop="func">
+                <el-select v-model="form.func" style="width:100%" placeholder="请选择功能">
+                  <el-option
+                    v-for="item in func()"
+                    :label="item.remarks"
+                    :value="item.value"
+                    :key="item.index"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="备注" label-width="130px" prop="remarks">
+                <el-input  v-model="form.remarks" autocomplete="off" placeholder="请输入备注"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="牌价" label-width="130px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex";
+export default {
+  inject:['func','bodystructure','actuatordrivetype','actuatortype'],
+  data () {
+    return {
+      drawer:false,
+      visible1:false,
+      timer:null,
+      isDisabled:false,
+      selectType:[],
+      rules:{
+        itemno: [
+          { required: true, message: '请输入执行器料号', trigger: 'blur' },
+        ],
+        marketprice: [
+          { required: true, message: '请输入牌价', trigger: 'blur' },
+          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
+        ],
+        weight: [
+          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
+        ],
+        actuatordrivetype: [
+          { required: true, message: '请选择执行器驱动类型', trigger: 'change' },
+        ],
+        actuatortype: [
+          { required: true, message: '请选择执行器类型', trigger: 'change' },
+        ],
+        itemname: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+      },
+      form:{
+        "itemid": 0,
+        "plm_itemextendid": 0,
+        "itemno": "",
+        "itemname": "",
+        "marketprice": '',
+        "spec": "",
+        "weight": '',
+        "remarks": "",
+        "outputtorque": "", //输出力矩(额定输出扭矩)
+        "supplyvoltage": "", //电源电压
+        "actiontime": "", //行程时间
+        "gyrationmode": "", //回转方式
+        "actuatorbrand": "", //执行器品牌
+        "speed": "", //转速
+        "flh": "",
+        "model":''
+      },
+      options:[],
+    }
+  },
+  computed:{
+    ...mapGetters({
+      loading:'loading'
+    })
+  },
+  watch: {
+    drawer (val) {
+      if (!val) {
+        this.$refs.form.resetFields()
+      }
+    }
+  },
+  methods:{
+    onShow () {
+      this.drawer = true
+    },
+    onSubmit () {
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false
+        this.$store.commit('setLoading',true)
+        this.$api.requested({
+            id:2024060513384502,
+            content: this.form
+        }).then(res=>{
+            this.tool.showMessage(res,() => {
+                this.$refs.form.resetFields()
+                this.$store.dispatch('changeDetailDrawer',true)
+                this.$router.push({path:'/executeDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
+                this.drawer = false
+                this.$emit('onSuccess',res.data)
+
+            })
+            this.$store.commit('setLoading',false)
+        })
+      });
+    },
+    },
+    
+}
+
+</script>
+<style scoped>
+.dialog-footer{
+  margin-top:32px;
+  text-align: center;
+}
+</style>

+ 12 - 199
src/optionSystem/executeManage/modules/add.vue

@@ -1,6 +1,8 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="onShow">新 建</el-button>
+    <el-button type="primary" size="small" @click="drawer=true">
+      新建
+    </el-button>
     <el-drawer
       title="新建执行器"
       :visible.sync="drawer"
@@ -9,145 +11,7 @@
       append-to-body
       :show-close="false">
       <div class="drawer__panel">
-        <el-row>
-          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
-            <el-col :span="24">
-              <el-form-item label="执行器料号" label-width="130px" prop="itemno">
-                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入执行器料号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="名称" label-width="130px" prop="itemname">
-                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="执行器类型" label-width="130px" prop="actuatortype">
-                <el-select v-model="form.actuatortype" style="width:100%" placeholder="请选择执行器类型">
-                  <el-option
-                    v-for="item in actuatortype()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="执行器驱动类型" label-width="130px" prop="actuatordrivetype">
-                <el-select v-model="form.actuatordrivetype" style="width:100%" placeholder="请选择执行器驱动类型">
-                  <el-option
-                    v-for="item in actuatordrivetype()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
-                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="型号" label-width="130px" prop="model">
-                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="转速" label-width="130px" prop="speed">
-                <el-input  v-model="form.speed" autocomplete="off" placeholder="请输入转速"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="法兰号" label-width="130px" prop="flh">
-                <el-input  v-model="form.flh" autocomplete="off" placeholder="请输入法兰号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="手轮速比" label-width="130px" prop="handwheelratio">
-                <el-input  v-model="form.handwheelratio" autocomplete="off" placeholder="请输入手轮速比"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="电源电压" label-width="130px" prop="supplyvoltage">
-                <el-input  v-model="form.supplyvoltage" autocomplete="off" placeholder="请输入电源电压"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="重量" label-width="130px" prop="weight">
-                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="扭矩" label-width="130px" prop="torque">
-                <el-input  v-model="form.torque" autocomplete="off" placeholder="请输入扭矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定功率" label-width="130px" prop="ratedpower">
-                <el-input  v-model="form.ratedpower" autocomplete="off" placeholder="请输入额定功率"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定电流" label-width="130px" prop="ratedcurrent">
-                <el-input  v-model="form.ratedcurrent" autocomplete="off" placeholder="请输入额定电流"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="90°最大运行时间" label-width="130px" prop="maxruntime">
-                <el-input  v-model="form.maxruntime" autocomplete="off" placeholder="请输入90°最大运行时间"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
-                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
-                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="结构" label-width="130px" prop="bodystructure">
-                <el-select v-model="form.bodystructure" style="width:100%" placeholder="请选择结构">
-                  <el-option
-                    v-for="item in bodystructure()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="功能" label-width="130px" prop="func">
-                <el-select v-model="form.func" style="width:100%" placeholder="请选择功能">
-                  <el-option
-                    v-for="item in func()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="备注" label-width="130px" prop="remarks">
-                <el-input  v-model="form.remarks" autocomplete="off" placeholder="请输入备注"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="牌价" label-width="130px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
+        <customForm ref="form" formname="form" v-if="drawer"></customForm>
       </div>
       <div class="fixed__btn__panel">
         <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
@@ -158,56 +22,15 @@
 </template>
 
 <script>
+import customForm from '@/components/customForm/customForm'
 import {mapGetters} from "vuex";
 export default {
-  inject:['func','bodystructure','actuatordrivetype','actuatortype'],
+  components:{customForm},
   data () {
     return {
       drawer:false,
-      visible1:false,
-      timer:null,
-      isDisabled:false,
-      selectType:[],
-      rules:{
-        itemno: [
-          { required: true, message: '请输入执行器料号', trigger: 'blur' },
-        ],
-        marketprice: [
-          { required: true, message: '请输入牌价', trigger: 'blur' },
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
-        ],
-        weight: [
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
-        ],
-        actuatordrivetype: [
-          { required: true, message: '请选择执行器驱动类型', trigger: 'change' },
-        ],
-        actuatortype: [
-          { required: true, message: '请选择执行器类型', trigger: 'change' },
-        ],
-        itemname: [
-          { required: true, message: '请输入名称', trigger: 'blur' }
-        ],
-      },
-      form:{
-        "itemid": 0,
-        "plm_itemextendid": 0,
-        "itemno": "",
-        "itemname": "",
-        "marketprice": '',
-        "spec": "",
-        "weight": '',
-        "remarks": "",
-        "outputtorque": "", //输出力矩(额定输出扭矩)
-        "supplyvoltage": "", //电源电压
-        "actiontime": "", //行程时间
-        "gyrationmode": "", //回转方式
-        "actuatorbrand": "", //执行器品牌
-        "speed": "", //转速
-        "flh": "",
-        "model":''
-      },
-      options:[],
+      type:'',
+      valvetype:''
     }
   },
   computed:{
@@ -216,26 +39,16 @@ export default {
     })
   },
   watch: {
-    drawer (val) {
-      if (!val) {
-        this.$refs.form.resetFields()
-      }
-    }
   },
   methods:{
-    onShow () {
-      this.drawer = true
-    },
     onSubmit () {
-      this.$refs['form'].validate((valid) => {
-        if (!valid) return false
+      this.$refs.form.validateFields(()=>{
         this.$store.commit('setLoading',true)
         this.$api.requested({
             id:2024060513384502,
-            content: this.form
+            content: this.$refs.form.form
         }).then(res=>{
             this.tool.showMessage(res,() => {
-                this.$refs.form.resetFields()
                 this.$store.dispatch('changeDetailDrawer',true)
                 this.$router.push({path:'/executeDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
                 this.drawer = false
@@ -244,9 +57,9 @@ export default {
             })
             this.$store.commit('setLoading',false)
         })
-      });
-    },
+      })
     },
+  },
     
 }
 

+ 17 - 197
src/optionSystem/executeManage/modules/edit.vue

@@ -1,6 +1,8 @@
 <template>
   <div>
-    <el-button size="mini" type="primary" @click="onShow" :disabled="data.status != '新建'">编 辑</el-button>
+    <el-button type="primary" size="mini" @click="onShow" :disabled="data.status == '审核'">
+      编辑
+    </el-button>
     <el-drawer
       title="编辑执行器"
       :visible.sync="drawer"
@@ -9,145 +11,7 @@
       append-to-body
       :show-close="false">
       <div class="drawer__panel">
-        <el-row>
-          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
-            <el-col :span="24">
-              <el-form-item label="执行器料号" label-width="130px" prop="itemno">
-                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入执行器料号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="名称" label-width="130px" prop="itemname">
-                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="执行器类型" label-width="130px" prop="actuatortype">
-                <el-select v-model="form.actuatortype" style="width:100%" placeholder="请选择执行器类型">
-                  <el-option
-                    v-for="item in actuatortype()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="执行器驱动类型" label-width="130px" prop="actuatordrivetype">
-                <el-select v-model="form.actuatordrivetype" style="width:100%" placeholder="请选择执行器驱动类型">
-                  <el-option
-                    v-for="item in actuatordrivetype()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
-                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="型号" label-width="130px" prop="model">
-                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="转速" label-width="130px" prop="speed">
-                <el-input  v-model="form.speed" autocomplete="off" placeholder="请输入转速"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="法兰号" label-width="130px" prop="flh">
-                <el-input  v-model="form.flh" autocomplete="off" placeholder="请输入法兰号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="手轮速比" label-width="130px" prop="handwheelratio">
-                <el-input  v-model="form.handwheelratio" autocomplete="off" placeholder="请输入手轮速比"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="电源电压" label-width="130px" prop="supplyvoltage">
-                <el-input  v-model="form.supplyvoltage" autocomplete="off" placeholder="请输入电源电压"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="重量" label-width="130px" prop="weight">
-                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="扭矩" label-width="130px" prop="torque">
-                <el-input  v-model="form.torque" autocomplete="off" placeholder="请输入扭矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定功率" label-width="130px" prop="ratedpower">
-                <el-input  v-model="form.ratedpower" autocomplete="off" placeholder="请输入额定功率"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定电流" label-width="130px" prop="ratedcurrent">
-                <el-input  v-model="form.ratedcurrent" autocomplete="off" placeholder="请输入额定电流"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="90°最大运行时间" label-width="130px" prop="maxruntime">
-                <el-input  v-model="form.maxruntime" autocomplete="off" placeholder="请输入90°最大运行时间"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
-                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
-                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="结构" label-width="130px" prop="bodystructure">
-                <el-select v-model="form.bodystructure" style="width:100%" placeholder="请选择结构">
-                  <el-option
-                    v-for="item in bodystructure()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="功能" label-width="130px" prop="func">
-                <el-select v-model="form.func" style="width:100%" placeholder="请选择功能">
-                  <el-option
-                    v-for="item in func()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="备注" label-width="130px" prop="remarks">
-                <el-input  v-model="form.remarks" autocomplete="off" placeholder="请输入备注"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="牌价" label-width="130px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
+        <customForm ref="form" formname="form" v-if="drawer"></customForm>
       </div>
       <div class="fixed__btn__panel">
         <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
@@ -158,56 +22,16 @@
 </template>
 
 <script>
+import customForm from '@/components/customForm/customForm'
 import {mapGetters} from "vuex";
 export default {
-  props:['data'],
-  inject:['func','bodystructure','actuatordrivetype','actuatortype'],
+  props: ['data'],
+  components:{customForm},
   data () {
     return {
       drawer:false,
-      visible1:false,
-      timer:null,
-      isDisabled:false,
-      selectType:[],
-      rules:{
-        itemno: [
-          { required: true, message: '请输入执行器料号', trigger: 'blur' },
-        ],
-        marketprice: [
-          { required: true, message: '请输入价格', trigger: 'blur' },
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
-        ],
-        weight: [
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
-        ],
-        actuatordrivetype: [
-          { required: true, message: '请选择执行器驱动类型', trigger: 'change' },
-        ],
-        actuatortype: [
-          { required: true, message: '请选择执行器类型', trigger: 'change' },
-        ],
-        itemname: [
-          { required: true, message: '请输入名称', trigger: 'blur' }
-        ],
-      },
-      form:{
-        "itemid": 0,
-        "plm_itemextendid": 0,
-        "itemno": "",
-        "itemname": "",
-        "marketprice": '',
-        "spec": "",
-        "weight": '',
-        "remarks": "",
-        "outputtorque": "", //输出力矩(额定输出扭矩)
-        "supplyvoltage": "", //电源电压
-        "actiontime": "", //行程时间
-        "gyrationmode": "", //回转方式
-        "actuatorbrand": "", //执行器品牌
-        "speed": "", //转速
-        "flh": ""
-      },
-      options:[],
+      type:'',
+      valvetype:''
     }
   },
   computed:{
@@ -216,27 +40,23 @@ export default {
     })
   },
   watch: {
-    drawer (val) {
-      if (!val) {
-        this.$refs.form.resetFields()
-      }
-    }
   },
   methods:{
     onShow () {
-      this.form = Object.assign({},this.form,this.data)
       this.drawer = true
+      this.$nextTick(() => {
+        this.$refs.form.getFormLayoutData('form')
+        this.$refs.form.form = JSON.parse(JSON.stringify(this.data))
+      })
     },
     onSubmit () {
-      this.$refs['form'].validate((valid) => {
-        if (!valid) return false
+      this.$refs.form.validateFields(()=>{
         this.$store.commit('setLoading',true)
         this.$api.requested({
             id:2024060513384502,
-            content: this.form
+            content: this.$refs.form.form
         }).then(res=>{
             this.tool.showMessage(res,() => {
-                this.$refs.form.resetFields()
                 this.$store.dispatch('changeDetailDrawer',true)
                 this.$router.push({path:'/executeDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
                 this.drawer = false
@@ -245,9 +65,9 @@ export default {
             })
             this.$store.commit('setLoading',false)
         })
-      });
-    },
+      })
     },
+  },
     
 }
 

+ 8 - 8
src/optionSystem/optionOrder/detail/modules/components/DieFa.vue

@@ -16,7 +16,12 @@
                         </el-input>
                     </div>
                 </div>
-
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">驱动方式:</div>
+                        <MySelect :isClear="false" @click="guangtouChange();Search('guangtouParam','drivetype');resultArr=[]" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                    </div>
+                </div>
                 <div class="option-line">
                     <div class="item">
                         <div class="label">公称通径:</div>
@@ -60,12 +65,7 @@
                     </div>
                 </div>
 
-                <div class="option-line">
-                    <div class="item">
-                        <div class="label">驱动方式:</div>
-                        <MySelect @click="guangtouChange();Search('guangtouParam','drivetype');resultArr=[]" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
-                    </div>
-                </div>
+                
                 <!--光头-->
                 <MyTable :height="tableHeight" ref="guangtouRef" :noQuery="true" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 25px">
                     <template v-slot:customcol="scope">
@@ -433,7 +433,7 @@ export default {
                     if (isbreak) break;
                     if (whereKeys[i].indexOf('condition') == -1) {
                         if (that.$refs.guangtouRef.list.length) {
-                            if (i >= index-1) {
+                            if (i >= index-1 && whereKeys[i]!='drivetype') {
                                 that[whereKeys[i]] = that.$refs.guangtouRef.list[0].option[whereKeys[i]]
                                 if (that[whereKeys[i]].length == 1) {
                                     if (that.guangtouParam.content.where[position]) that.guangtouParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value

+ 2 - 2
src/optionSystem/otherFileManage/modules/add.vue

@@ -54,8 +54,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="价" label-width="100px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
+              <el-form-item label="价" label-width="100px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
               </el-form-item>
             </el-col>
           </el-form>

+ 2 - 2
src/optionSystem/otherFileManage/modules/edit.vue

@@ -54,8 +54,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="价" label-width="100px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
+              <el-form-item label="价" label-width="100px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
               </el-form-item>
             </el-col>
           </el-form>

+ 9 - 8
src/optionSystem/selectOption/components/DieFa.vue

@@ -3,6 +3,12 @@
     <el-tabs v-model="activePosition">
         <el-tab-pane label="选光头" name="光头" :disabled="activePosition!='光头'">
             <div class="dialog-content">
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">驱动方式:</div>
+                        <MySelect :isClear="false" @click="guangtouChange();Search('guangtouParam','drivetype')" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                    </div>
+                </div>
                 <div class="option-line">
                     <div class="item">
                         <div class="label">公称通径:</div>
@@ -46,12 +52,7 @@
                     </div>
                 </div>
 
-                <div class="option-line">
-                    <div class="item">
-                        <div class="label">驱动方式:</div>
-                        <MySelect @click="guangtouChange();Search('guangtouParam','drivetype')" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
-                    </div>
-                </div>
+                
                 <!--光头-->
                 <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 25px">
                     <template v-slot:customcol="scope">
@@ -326,7 +327,7 @@ export default {
         activePosition (val) {
             if (val == '配置') {
                 if (this.guangtouParam.content.where.drivetype == '电动') {
-                    if (this.resultArr[1].gearboxid) this.resultArr.push({parttype:'减速箱',itemid:this.resultArr[1].gearboxid,itemname:this.resultArr[1].gearboxname,actuatorbrand:this.resultArr[1].actuatorbrand})
+                    if (this.resultArr[1].gearboxid) this.resultArr.push({parttype:'减速箱',itemid:this.resultArr[1].gearboxid,itemname:this.resultArr[1].gearboxname,actuatorbrand:this.resultArr[1].gearboxbrand})
                 }
                 this.$api.requested({
                     "id": 2024071916224702,
@@ -396,7 +397,7 @@ export default {
                     if (isbreak) break;
                     if (whereKeys[i].indexOf('condition') == -1) {
                         if (that.$refs.guangtouRef.list.length) {
-                            if (i >= index-1) {
+                            if (i >= index-1 && whereKeys[i]!='drivetype') {
                                 that[whereKeys[i]] = that.$refs.guangtouRef.list[0].option[whereKeys[i]]
                                 if (that[whereKeys[i]].length == 1) {
                                     if (that.guangtouParam.content.where[position]) that.guangtouParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value

+ 207 - 0
src/optionSystem/speedBoxManage/modules/add copy.vue

@@ -0,0 +1,207 @@
+<template>
+  <div>
+    <el-button size="small" type="primary" @click="onShow">新 建</el-button>
+    <el-drawer
+      title="新建减速箱"
+      :visible.sync="drawer"
+      size="664px"
+      direction="rtl"
+      append-to-body
+      :show-close="false">
+      <div class="drawer__panel">
+        <el-row>
+          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
+            <el-col :span="24">
+              <el-form-item label="减速箱料号" label-width="130px" prop="itemno">
+                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入减速箱料号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="名称" label-width="130px" prop="itemname">
+                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
+                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="型号" label-width="130px" prop="model">
+                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="减速比" label-width="130px" prop="reductionratio">
+                <el-input  v-model="form.reductionratio" autocomplete="off" placeholder="请输入减速比"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="额定输出力矩" label-width="130px" prop="outputtorque">
+                <el-input  v-model="form.outputtorque" autocomplete="off" placeholder="请输入额定输出力矩"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="最大输入力矩" label-width="130px" prop="maxinputtorque">
+                <el-input  v-model="form.maxinputtorque" autocomplete="off" placeholder="请输入最大输入力矩"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="力矩增益" label-width="130px" prop="torquegain">
+                <el-input  v-model="form.torquegain" autocomplete="off" placeholder="请输入力矩增益"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="减速箱效率" label-width="130px" prop="gearboxlevel">
+                <el-select v-model="form.gearboxlevel" style="width:100%" placeholder="请选择减速箱效率">
+                  <el-option
+                    v-for="item in gearboxlevel()"
+                    :label="item.remarks"
+                    :value="item.value"
+                    :key="item.index"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="重量(kg)" label-width="130px" prop="weight">
+                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
+              </el-form-item>
+            </el-col>
+            
+            <el-col :span="24">
+              <el-form-item label="入端法兰" label-width="130px" prop="flh_in">
+                <el-input  v-model="form.flh_in" autocomplete="off" placeholder="请输入入端法兰"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="入端轴径" label-width="130px" prop="inputdiameter">
+                <el-input  v-model="form.inputdiameter" autocomplete="off" placeholder="请输入入端轴径"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="出端法兰" label-width="130px" prop="flh_out">
+                <el-input  v-model="form.flh_out" autocomplete="off" placeholder="请输入出端法兰"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
+                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
+                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="牌价" label-width="130px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex";
+export default {
+  inject:['gearboxlevel'],
+  data () {
+    return {
+      drawer:false,
+      visible1:false,
+      timer:null,
+      isDisabled:false,
+      selectType:[],
+      rules:{
+        itemno: [
+          { required: true, message: '请输入减速箱料号', trigger: 'blur' },
+        ],
+        marketprice: [
+          { required: true, message: '请输入牌价', trigger: 'blur' },
+          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
+        ],
+        weight: [
+          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
+        ],
+        itemname: [
+          { required: true, message: '请输入名称', trigger: 'blur' }
+        ],
+      },
+      form:{
+        "itemid": 0,
+        "plm_itemextendid": 0,
+        "itemno": "",
+        "itemname": "",
+        "marketprice": '',
+        "model": "",
+        "weight": '',
+        "actuatorbrand": "", //减速箱品牌
+        "reductionratio": "", //减速比
+        "outputtorque": "", //额定输出力矩
+        "maxinputtorque": "", //最大输入力矩
+        "torquegain": "", //力矩增益
+        "flh_in": "", //入端法兰
+        "inputdiameter": "", //入端轴径
+        "flh_out": "", //出端法兰
+        "maxrounddiameter": "", //圆阀杆最大直径
+        "maxsquarewidth": "" //方阀杆最大宽度
+      },
+      options:[],
+    }
+  },
+  computed:{
+    ...mapGetters({
+      loading:'loading'
+    })
+  },
+  watch: {
+    drawer (val) {
+      if (!val) {
+        this.$refs.form.resetFields()
+      }
+    }
+  },
+  methods:{
+    onShow () {
+      this.drawer = true
+    },
+    onSubmit () {
+      this.$refs['form'].validate((valid) => {
+        if (!valid) return false
+        this.$store.commit('setLoading',true)
+        this.$api.requested({
+            id:20240615135802,
+            content: this.form
+        }).then(res=>{
+            this.tool.showMessage(res,() => {
+                this.$refs.form.resetFields()
+                this.$store.dispatch('changeDetailDrawer',true)
+                this.$router.push({path:'/speedBoxDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
+                this.drawer = false
+                this.$emit('onSuccess',res.data)
+
+            })
+            this.$store.commit('setLoading',false)
+        })
+      });
+    },
+    },
+    
+}
+
+</script>
+<style scoped>
+.dialog-footer{
+  margin-top:32px;
+  text-align: center;
+}
+</style>

+ 12 - 147
src/optionSystem/speedBoxManage/modules/add.vue

@@ -1,6 +1,8 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="onShow">新 建</el-button>
+    <el-button type="primary" size="small" @click="drawer=true">
+      新建
+    </el-button>
     <el-drawer
       title="新建减速箱"
       :visible.sync="drawer"
@@ -9,98 +11,7 @@
       append-to-body
       :show-close="false">
       <div class="drawer__panel">
-        <el-row>
-          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
-            <el-col :span="24">
-              <el-form-item label="减速箱料号" label-width="130px" prop="itemno">
-                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入减速箱料号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="名称" label-width="130px" prop="itemname">
-                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
-                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="型号" label-width="130px" prop="model">
-                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="减速比" label-width="130px" prop="reductionratio">
-                <el-input  v-model="form.reductionratio" autocomplete="off" placeholder="请输入减速比"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定输出力矩" label-width="130px" prop="outputtorque">
-                <el-input  v-model="form.outputtorque" autocomplete="off" placeholder="请输入额定输出力矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="最大输入力矩" label-width="130px" prop="maxinputtorque">
-                <el-input  v-model="form.maxinputtorque" autocomplete="off" placeholder="请输入最大输入力矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="力矩增益" label-width="130px" prop="torquegain">
-                <el-input  v-model="form.torquegain" autocomplete="off" placeholder="请输入力矩增益"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="减速箱效率" label-width="130px" prop="gearboxlevel">
-                <el-select v-model="form.gearboxlevel" style="width:100%" placeholder="请选择减速箱效率">
-                  <el-option
-                    v-for="item in gearboxlevel()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="重量(kg)" label-width="130px" prop="weight">
-                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="入端法兰" label-width="130px" prop="flh_in">
-                <el-input  v-model="form.flh_in" autocomplete="off" placeholder="请输入入端法兰"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="入端轴径" label-width="130px" prop="inputdiameter">
-                <el-input  v-model="form.inputdiameter" autocomplete="off" placeholder="请输入入端轴径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="出端法兰" label-width="130px" prop="flh_out">
-                <el-input  v-model="form.flh_out" autocomplete="off" placeholder="请输入出端法兰"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
-                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
-                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="牌价" label-width="130px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
+        <customForm ref="form" formname="form" v-if="drawer"></customForm>
       </div>
       <div class="fixed__btn__panel">
         <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
@@ -111,51 +22,15 @@
 </template>
 
 <script>
+import customForm from '@/components/customForm/customForm'
 import {mapGetters} from "vuex";
 export default {
-  inject:['gearboxlevel'],
+  components:{customForm},
   data () {
     return {
       drawer:false,
-      visible1:false,
-      timer:null,
-      isDisabled:false,
-      selectType:[],
-      rules:{
-        itemno: [
-          { required: true, message: '请输入减速箱料号', trigger: 'blur' },
-        ],
-        marketprice: [
-          { required: true, message: '请输入牌价', trigger: 'blur' },
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
-        ],
-        weight: [
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
-        ],
-        itemname: [
-          { required: true, message: '请输入名称', trigger: 'blur' }
-        ],
-      },
-      form:{
-        "itemid": 0,
-        "plm_itemextendid": 0,
-        "itemno": "",
-        "itemname": "",
-        "marketprice": '',
-        "model": "",
-        "weight": '',
-        "actuatorbrand": "", //减速箱品牌
-        "reductionratio": "", //减速比
-        "outputtorque": "", //额定输出力矩
-        "maxinputtorque": "", //最大输入力矩
-        "torquegain": "", //力矩增益
-        "flh_in": "", //入端法兰
-        "inputdiameter": "", //入端轴径
-        "flh_out": "", //出端法兰
-        "maxrounddiameter": "", //圆阀杆最大直径
-        "maxsquarewidth": "" //方阀杆最大宽度
-      },
-      options:[],
+      type:'',
+      valvetype:''
     }
   },
   computed:{
@@ -164,26 +39,16 @@ export default {
     })
   },
   watch: {
-    drawer (val) {
-      if (!val) {
-        this.$refs.form.resetFields()
-      }
-    }
   },
   methods:{
-    onShow () {
-      this.drawer = true
-    },
     onSubmit () {
-      this.$refs['form'].validate((valid) => {
-        if (!valid) return false
+      this.$refs.form.validateFields(()=>{
         this.$store.commit('setLoading',true)
         this.$api.requested({
             id:20240615135802,
-            content: this.form
+            content: this.$refs.form.form
         }).then(res=>{
             this.tool.showMessage(res,() => {
-                this.$refs.form.resetFields()
                 this.$store.dispatch('changeDetailDrawer',true)
                 this.$router.push({path:'/speedBoxDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
                 this.drawer = false
@@ -192,9 +57,9 @@ export default {
             })
             this.$store.commit('setLoading',false)
         })
-      });
-    },
+      })
     },
+  },
     
 }
 

+ 16 - 145
src/optionSystem/speedBoxManage/modules/edit.vue

@@ -1,6 +1,8 @@
 <template>
   <div>
-    <el-button size="mini" type="primary" @click="onShow" :disabled="data.status != '新建'">编辑</el-button>
+    <el-button type="primary" size="mini" @click="onShow" :disabled="data.status == '审核'">
+      编辑
+    </el-button>
     <el-drawer
       title="编辑减速箱"
       :visible.sync="drawer"
@@ -9,98 +11,7 @@
       append-to-body
       :show-close="false">
       <div class="drawer__panel">
-        <el-row>
-          <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="right">
-            <el-col :span="24">
-              <el-form-item label="减速箱料号" label-width="130px" prop="itemno">
-                <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入减速箱料号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="名称" label-width="130px" prop="itemname">
-                <el-input  v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
-                <el-input  v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="型号" label-width="130px" prop="model">
-                <el-input  v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="减速比" label-width="130px" prop="reductionratio">
-                <el-input  v-model="form.reductionratio" autocomplete="off" placeholder="请输入减速比"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="额定输出力矩" label-width="130px" prop="outputtorque">
-                <el-input  v-model="form.outputtorque" autocomplete="off" placeholder="请输入额定输出力矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="最大输入力矩" label-width="130px" prop="maxinputtorque">
-                <el-input  v-model="form.maxinputtorque" autocomplete="off" placeholder="请输入最大输入力矩"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="力矩增益" label-width="130px" prop="torquegain">
-                <el-input  v-model="form.torquegain" autocomplete="off" placeholder="请输入力矩增益"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="减速箱效率" label-width="130px" prop="gearboxlevel">
-                <el-select v-model="form.gearboxlevel" style="width:100%" placeholder="请选择减速箱效率">
-                  <el-option
-                    v-for="item in gearboxlevel()"
-                    :label="item.remarks"
-                    :value="item.value"
-                    :key="item.index"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="重量(kg)" label-width="130px" prop="weight">
-                <el-input  v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
-              </el-form-item>
-            </el-col>
-            
-            <el-col :span="24">
-              <el-form-item label="入端法兰" label-width="130px" prop="flh_in">
-                <el-input  v-model="form.flh_in" autocomplete="off" placeholder="请输入入端法兰"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="入端轴径" label-width="130px" prop="inputdiameter">
-                <el-input  v-model="form.inputdiameter" autocomplete="off" placeholder="请输入入端轴径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="出端法兰" label-width="130px" prop="flh_out">
-                <el-input  v-model="form.flh_out" autocomplete="off" placeholder="请输入出端法兰"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
-                <el-input  v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
-                <el-input  v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="24">
-              <el-form-item label="牌价" label-width="130px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
-              </el-form-item>
-            </el-col>
-          </el-form>
-        </el-row>
+        <customForm ref="form" formname="form" v-if="drawer"></customForm>
       </div>
       <div class="fixed__btn__panel">
         <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
@@ -111,52 +22,16 @@
 </template>
 
 <script>
+import customForm from '@/components/customForm/customForm'
 import {mapGetters} from "vuex";
 export default {
   props:['data'],
-  inject:['gearboxlevel'],
+  components:{customForm},
   data () {
     return {
       drawer:false,
-      visible1:false,
-      timer:null,
-      isDisabled:false,
-      selectType:[],
-      rules:{
-        itemno: [
-          { required: true, message: '请输入减速箱料号', trigger: 'blur' },
-        ],
-        marketprice: [
-          { required: true, message: '请输入牌价', trigger: 'blur' },
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
-        ],
-        weight: [
-          { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
-        ],
-        itemname: [
-          { required: true, message: '请输入名称', trigger: 'blur' }
-        ],
-      },
-      form:{
-        "itemid": 0,
-        "plm_itemextendid": 0,
-        "itemno": "",
-        "itemname": "",
-        "marketprice": '',
-        "model": "",
-        "weight": '',
-        "actuatorbrand": "", //减速箱品牌
-        "reductionratio": "", //减速比
-        "outputtorque": "", //额定输出力矩
-        "maxinputtorque": "", //最大输入力矩
-        "torquegain": "", //力矩增益
-        "flh_in": "", //入端法兰
-        "inputdiameter": "", //入端轴径
-        "flh_out": "", //出端法兰
-        "maxrounddiameter": "", //圆阀杆最大直径
-        "maxsquarewidth": "" //方阀杆最大宽度
-      },
-      options:[],
+      type:'',
+      valvetype:''
     }
   },
   computed:{
@@ -165,27 +40,23 @@ export default {
     })
   },
   watch: {
-    drawer (val) {
-      if (!val) {
-        this.$refs.form.resetFields()
-      }
-    }
   },
   methods:{
     onShow () {
-      this.form = Object.assign({},this.form,this.data)
       this.drawer = true
+      this.$nextTick(() => {
+        this.$refs.form.getFormLayoutData('form')
+        this.$refs.form.form = JSON.parse(JSON.stringify(this.data))
+      })
     },
     onSubmit () {
-      this.$refs['form'].validate((valid) => {
-        if (!valid) return false
+      this.$refs.form.validateFields(()=>{
         this.$store.commit('setLoading',true)
         this.$api.requested({
             id:20240615135802,
-            content: this.form
+            content: this.$refs.form.form
         }).then(res=>{
             this.tool.showMessage(res,() => {
-                this.$refs.form.resetFields()
                 this.$store.dispatch('changeDetailDrawer',true)
                 this.$router.push({path:'/speedBoxDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
                 this.drawer = false
@@ -194,9 +65,9 @@ export default {
             })
             this.$store.commit('setLoading',false)
         })
-      });
-    },
+      })
     },
+  },
     
 }
 

+ 2 - 2
src/optionSystem/throttleManage/modules/add.vue

@@ -75,8 +75,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="价" label-width="100px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
+              <el-form-item label="价" label-width="100px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
               </el-form-item>
             </el-col>
           </el-form>

+ 2 - 2
src/optionSystem/throttleManage/modules/edit.vue

@@ -75,8 +75,8 @@
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="价" label-width="100px" prop="marketprice">
-                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
+              <el-form-item label="价" label-width="100px" prop="marketprice">
+                <el-input  v-model="form.marketprice" autocomplete="off" placeholder="请输入价"></el-input>
               </el-form-item>
             </el-col>
           </el-form>