edit.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <template>
  2. <div>
  3. <el-button size="mini" type="primary" @click="onShow" :disabled="data.status != '新建'">编辑</el-button>
  4. <el-drawer
  5. title="编辑减速箱"
  6. :visible.sync="drawer"
  7. size="664px"
  8. direction="rtl"
  9. append-to-body
  10. :show-close="false">
  11. <div class="drawer__panel">
  12. <el-row>
  13. <el-form :model="form" :rules="rules" ref="form" size="mini" label-position="right">
  14. <el-col :span="24">
  15. <el-form-item label="减速箱料号" label-width="130px" prop="itemno">
  16. <el-input v-model="form.itemno" autocomplete="off" placeholder="请输入减速箱料号"></el-input>
  17. </el-form-item>
  18. </el-col>
  19. <el-col :span="24">
  20. <el-form-item label="名称" label-width="130px" prop="itemname">
  21. <el-input v-model="form.itemname" autocomplete="off" placeholder="请输入名称"></el-input>
  22. </el-form-item>
  23. </el-col>
  24. <el-col :span="24">
  25. <el-form-item label="品牌" label-width="130px" prop="actuatorbrand">
  26. <el-input v-model="form.actuatorbrand" autocomplete="off" placeholder="请输入品牌"></el-input>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="24">
  30. <el-form-item label="型号" label-width="130px" prop="model">
  31. <el-input v-model="form.model" autocomplete="off" placeholder="请输入型号"></el-input>
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="24">
  35. <el-form-item label="减速比" label-width="130px" prop="reductionratio">
  36. <el-input v-model="form.reductionratio" autocomplete="off" placeholder="请输入减速比"></el-input>
  37. </el-form-item>
  38. </el-col>
  39. <el-col :span="24">
  40. <el-form-item label="额定输出力矩" label-width="130px" prop="outputtorque">
  41. <el-input v-model="form.outputtorque" autocomplete="off" placeholder="请输入额定输出力矩"></el-input>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="24">
  45. <el-form-item label="最大输入力矩" label-width="130px" prop="maxinputtorque">
  46. <el-input v-model="form.maxinputtorque" autocomplete="off" placeholder="请输入最大输入力矩"></el-input>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :span="24">
  50. <el-form-item label="力矩增益" label-width="130px" prop="torquegain">
  51. <el-input v-model="form.torquegain" autocomplete="off" placeholder="请输入力矩增益"></el-input>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :span="24">
  55. <el-form-item label="减速箱效率" label-width="130px" prop="gearboxlevel">
  56. <el-select v-model="form.gearboxlevel" style="width:100%" placeholder="请选择减速箱效率">
  57. <el-option
  58. v-for="item in gearboxlevel()"
  59. :label="item.remarks"
  60. :value="item.value"
  61. :key="item.index"
  62. ></el-option>
  63. </el-select>
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="24">
  67. <el-form-item label="重量(kg)" label-width="130px" prop="weight">
  68. <el-input v-model="form.weight" autocomplete="off" placeholder="请输入重量"></el-input>
  69. </el-form-item>
  70. </el-col>
  71. <el-col :span="24">
  72. <el-form-item label="入端法兰" label-width="130px" prop="flh_in">
  73. <el-input v-model="form.flh_in" autocomplete="off" placeholder="请输入入端法兰"></el-input>
  74. </el-form-item>
  75. </el-col>
  76. <el-col :span="24">
  77. <el-form-item label="入端轴径" label-width="130px" prop="inputdiameter">
  78. <el-input v-model="form.inputdiameter" autocomplete="off" placeholder="请输入入端轴径"></el-input>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="24">
  82. <el-form-item label="出端法兰" label-width="130px" prop="flh_out">
  83. <el-input v-model="form.flh_out" autocomplete="off" placeholder="请输入出端法兰"></el-input>
  84. </el-form-item>
  85. </el-col>
  86. <el-col :span="24">
  87. <el-form-item label="圆阀杆最大直径" label-width="130px" prop="maxrounddiameter">
  88. <el-input v-model="form.maxrounddiameter" autocomplete="off" placeholder="请输入圆阀杆最大直径"></el-input>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :span="24">
  92. <el-form-item label="方阀杆最大宽度" label-width="130px" prop="maxsquarewidth">
  93. <el-input v-model="form.maxsquarewidth" autocomplete="off" placeholder="请输入方阀杆最大宽度"></el-input>
  94. </el-form-item>
  95. </el-col>
  96. <el-col :span="24">
  97. <el-form-item label="牌价" label-width="130px" prop="marketprice">
  98. <el-input v-model="form.marketprice" autocomplete="off" placeholder="请输入牌价"></el-input>
  99. </el-form-item>
  100. </el-col>
  101. </el-form>
  102. </el-row>
  103. </div>
  104. <div class="fixed__btn__panel">
  105. <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
  106. <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
  107. </div>
  108. </el-drawer>
  109. </div>
  110. </template>
  111. <script>
  112. import {mapGetters} from "vuex";
  113. export default {
  114. props:['data'],
  115. inject:['gearboxlevel'],
  116. data () {
  117. return {
  118. drawer:false,
  119. visible1:false,
  120. timer:null,
  121. isDisabled:false,
  122. selectType:[],
  123. rules:{
  124. itemno: [
  125. { required: true, message: '请输入减速箱料号', trigger: 'blur' },
  126. ],
  127. marketprice: [
  128. { required: true, message: '请输入牌价', trigger: 'blur' },
  129. { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数字(最多两位小数)',trigger:'blur'}
  130. ],
  131. weight: [
  132. { pattern:/^([1-9][0-9]*)+(\.[0-9]{1,2})?$/,message:'请输入数值(最多两位小数)',trigger:'blur'}
  133. ],
  134. itemname: [
  135. { required: true, message: '请输入名称', trigger: 'blur' }
  136. ],
  137. },
  138. form:{
  139. "itemid": 0,
  140. "plm_itemextendid": 0,
  141. "itemno": "",
  142. "itemname": "",
  143. "marketprice": '',
  144. "model": "",
  145. "weight": '',
  146. "actuatorbrand": "", //减速箱品牌
  147. "reductionratio": "", //减速比
  148. "outputtorque": "", //额定输出力矩
  149. "maxinputtorque": "", //最大输入力矩
  150. "torquegain": "", //力矩增益
  151. "flh_in": "", //入端法兰
  152. "inputdiameter": "", //入端轴径
  153. "flh_out": "", //出端法兰
  154. "maxrounddiameter": "", //圆阀杆最大直径
  155. "maxsquarewidth": "" //方阀杆最大宽度
  156. },
  157. options:[],
  158. }
  159. },
  160. computed:{
  161. ...mapGetters({
  162. loading:'loading'
  163. })
  164. },
  165. watch: {
  166. drawer (val) {
  167. if (!val) {
  168. this.$refs.form.resetFields()
  169. }
  170. }
  171. },
  172. methods:{
  173. onShow () {
  174. this.form = Object.assign({},this.form,this.data)
  175. this.drawer = true
  176. },
  177. onSubmit () {
  178. this.$refs['form'].validate((valid) => {
  179. if (!valid) return false
  180. this.$store.commit('setLoading',true)
  181. this.$api.requested({
  182. id:20240615135802,
  183. content: this.form
  184. }).then(res=>{
  185. this.tool.showMessage(res,() => {
  186. this.$refs.form.resetFields()
  187. this.$store.dispatch('changeDetailDrawer',true)
  188. this.$router.push({path:'/speedBoxDetail',query:{id:res.data.itemid,rowindex:res.data.rowindex}})
  189. this.drawer = false
  190. this.$emit('onSuccess',res.data)
  191. })
  192. this.$store.commit('setLoading',false)
  193. })
  194. });
  195. },
  196. },
  197. }
  198. </script>
  199. <style scoped>
  200. .dialog-footer{
  201. margin-top:32px;
  202. text-align: center;
  203. }
  204. </style>