formModel.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. <template>
  2. <ele-form-dialog
  3. v-bind="formConfig"
  4. v-model="formFieldsData"
  5. v-dialogDrag
  6. :title="title"
  7. :request-fn="handleFormSubmit"
  8. :visible.sync="DialogVisible"
  9. custom-class="abow_dialog"
  10. label-width="100px"
  11. label-position="left"
  12. :dialogAttrs="{ 'close-on-click-modal': false,'top':'8vh'}"
  13. v-if="fresh"
  14. />
  15. </template>
  16. <script>
  17. import { array } from 'jszip/lib/support';
  18. export default {
  19. props: ["formModelVisible", "title"],
  20. data() {
  21. // var validateMaxPressure = (rule, value, callback) => {
  22. // if ( (value !== '') && (this.formFieldsData.min_pressure !=='')) {
  23. // var min_pressure = this.formFieldsData.min_pressure - 0;
  24. // var max_pressure = value - 0;
  25. // if (min_pressure > max_pressure) {
  26. // callback(new Error('不能小于最小压力'))
  27. // } else {
  28. // callback()
  29. // }
  30. // } else {
  31. // callback()
  32. // }
  33. // };
  34. // var validateMinPressure = (rule, value, callback) => {
  35. // if ( (value !== '') && (this.formFieldsData.max_pressure !=='')) {
  36. // var max_pressure = this.formFieldsData.max_pressure - 0;
  37. // var min_pressure = value - 0;
  38. // if (min_pressure > max_pressure) {
  39. // callback(new Error('不能大于最大压力'))
  40. // } else {
  41. // callback()
  42. // }
  43. // } else {
  44. // callback()
  45. // }
  46. // };
  47. return {
  48. formData: {},
  49. fresh:true,
  50. deviceTypes:[],
  51. formFieldsData: {
  52. id:'',
  53. equipment_type:"",
  54. equipment_model:"",
  55. material_number: "",
  56. name: "",
  57. issue_unit:"",
  58. fixed_asset_number:"",
  59. fixed_asset_number2:'',
  60. serial_number:"",
  61. factory_number:"",
  62. check_last_time:"",
  63. check_next_time:"",
  64. check_status:"",
  65. status:"",
  66. list:"",
  67. },
  68. url: "hydEquipment",
  69. formConfig: {
  70. formDesc: {
  71. equipment_type:{
  72. layout: 12,
  73. type:"select",
  74. label:'设备类型',
  75. required:true,
  76. options:[],
  77. disabled (data) {
  78. if(data.id)
  79. {
  80. return true;
  81. }
  82. return false;
  83. }
  84. },
  85. equipment_model: {
  86. layout: 12,
  87. type: "input",
  88. label: "型号",
  89. },
  90. name: {
  91. layout: 12,
  92. type: "input",
  93. label: "名称",
  94. required:true
  95. },
  96. material_number: {
  97. layout: 12,
  98. type: "input",
  99. label: "物料号",
  100. required:true,
  101. },
  102. issue_unit: {
  103. layout: 12,
  104. type: "input",
  105. label: "发放单位",
  106. },
  107. fixed_asset_number:
  108. {
  109. layout: 12,
  110. type: "input",
  111. label: "固定资产编号",
  112. },
  113. fixed_asset_number2:
  114. {
  115. layout: 12,
  116. type: "input",
  117. label: "类固资产编号",
  118. },
  119. serial_number:{
  120. layout: 12,
  121. type: "input",
  122. label: "序列号",
  123. },
  124. factory_number:{
  125. layout: 12,
  126. type: "input",
  127. label: "出厂编号"
  128. },
  129. check_last_time:{
  130. layout: 12,
  131. type: "date",
  132. label: "上次校验时间"
  133. },
  134. check_next_time:{
  135. layout: 12,
  136. type: "date",
  137. label: "下次校验时间"
  138. },
  139. check_status:{
  140. layout: 12,
  141. type: "select",
  142. label: "校验状态",
  143. options:[],
  144. },
  145. status:{
  146. layout: 12,
  147. type: "select",
  148. label: "状态",
  149. options:[],
  150. },
  151. department_id: {
  152. layout: 12,
  153. type: "cascader",
  154. label: "所属部门",
  155. isOptions: true,
  156. options: [],
  157. required: true,
  158. attrs: {
  159. props: {
  160. label: "department_name",
  161. value: "id",
  162. emitPath: false,
  163. checkStrictly: true
  164. }
  165. },
  166. vif(data)
  167. {
  168. if(data.equipment_type&&data.equipment_type<5)
  169. {
  170. return true;
  171. }
  172. return false;
  173. }
  174. },
  175. number:{
  176. layout: 12,
  177. type: "input",
  178. label: "编号",
  179. required:true,
  180. vif(data)
  181. {
  182. if(data.equipment_type&&data.equipment_type<5)
  183. {
  184. return true;
  185. }
  186. return false;
  187. }
  188. },
  189. imei: {
  190. layout: 12,
  191. type: "input",
  192. label: "IMEI号",
  193. required:true,
  194. vif(data)
  195. {
  196. if(data.equipment_type&&data.equipment_type==2)
  197. {
  198. return true;
  199. }
  200. return false;
  201. }
  202. },
  203. angle_sensor:{
  204. type: 'switch',
  205. label: "角度传感器",
  206. vif(data)
  207. {
  208. if(data.equipment_type==3||data.equipment_type==4)
  209. {
  210. return true;
  211. }
  212. return false;
  213. }
  214. },
  215. pressure:{
  216. layout: 12,
  217. type: "input",
  218. label: "压力",
  219. vif(data)
  220. {
  221. if(data.equipment_type==3||data.equipment_type==4)
  222. {
  223. return true;
  224. }
  225. return false;
  226. }
  227. },
  228. torque:{
  229. layout: 12,
  230. type: "input",
  231. label: "扭矩",
  232. vif(data)
  233. {
  234. if(data.equipment_type==3||data.equipment_type==4)
  235. {
  236. return true;
  237. }
  238. return false;
  239. }
  240. },
  241. max_pressure: {
  242. layout: 12,
  243. type: "input",
  244. required: true,
  245. label: "最大压力",
  246. vif(data)
  247. {
  248. if(data.equipment_type&&data.equipment_type==2)
  249. {
  250. return true;
  251. }
  252. return false;
  253. }
  254. },
  255. min_pressure: {
  256. layout: 12,
  257. type: "input",
  258. required: true,
  259. label: "最小压力",
  260. vif(data)
  261. {
  262. if(data.equipment_type&&data.equipment_type==2)
  263. {
  264. return true;
  265. }
  266. return false;
  267. }
  268. },
  269. effective_period: {
  270. layout: 12,
  271. type: "input",
  272. required: true,
  273. label: "有效周期",
  274. vif(data)
  275. {
  276. if(data.equipment_type&&data.equipment_type==2)
  277. {
  278. return true;
  279. }
  280. return false;
  281. }
  282. },
  283. remark: {
  284. type: "textarea",
  285. label: "显示信息",
  286. attrs: {
  287. autosizeType: "switch",
  288. autosize: false,
  289. rows: 2
  290. },
  291. vif(data)
  292. {
  293. if(data.equipment_type&&data.equipment_type<5)
  294. {
  295. return true;
  296. }
  297. return false;
  298. }
  299. }
  300. },
  301. order: ['equipment_type','equipment_model',"name","material_number",'issue_unit','fixed_asset_number','fixed_asset_number2',"serial_number",'factory_number','check_last_time','check_next_time','check_status','status',"number","department_id","pressure","pressure","torque",'angle_sensor',"imei","min_pressure","max_pressure", "effective_period","remark"]
  302. }
  303. };
  304. },
  305. created() {
  306. this.$http.get("departments").then(response => {
  307. this.formConfig.formDesc.department_id.options = response.data;
  308. });
  309. this.$http.get("getHydEquipmentType",{ params: {code:'ToolStatus'} }).then(response => {
  310. this.formConfig.formDesc.status.options = response.data;
  311. });
  312. this.$http.get("getHydEquipmentType",{ params: {code:'Check'} }).then(response => {
  313. this.formConfig.formDesc.check_status.options = response.data;
  314. });
  315. this.$http.get("findAllByPid",{ params: {id:1} }).then(resp => {
  316. let data= resp.data;
  317. let ar=[];
  318. data.forEach((item) => {
  319. ar.push({text:item.name,value:item.id})
  320. });
  321. this.formConfig.formDesc.equipment_type.options = ar;
  322. });
  323. },
  324. methods: {
  325. //更新内容
  326. update()
  327. {
  328. // this.formFieldsData.equipment_type=this.formFieldsData.equipment_type;
  329. if(this.formFieldsData.list)
  330. {
  331. this.formFieldsData.number = this.formFieldsData.list.number;
  332. this.formFieldsData.remark = this.formFieldsData.list.remark;
  333. this.formFieldsData.department_id = this.formFieldsData.list.department_id;
  334. if(this.formFieldsData.equipment_type==2)
  335. {
  336. //泵
  337. this.formFieldsData.imei = this.formFieldsData.list.imei;
  338. this.formFieldsData.max_pressure= this.formFieldsData.list.max_pressure;
  339. this.formFieldsData.min_pressure= this.formFieldsData.list.min_pressure;
  340. this.formFieldsData.effective_period = this.formFieldsData.list.effective_period
  341. }
  342. else
  343. {
  344. //扳手
  345. this.formFieldsData.angle_sensor = this.formFieldsData.list.angle_sensor;
  346. this.formFieldsData.pressure= this.formFieldsData.list.pressure;
  347. this.formFieldsData.torque= this.formFieldsData.list.torque;
  348. }
  349. }
  350. },
  351. handleFormSubmit(data) {
  352. this.$parent.handleSubmit();
  353. },
  354. handleRequest(data) {
  355. return Promise.resolve();
  356. },
  357. handleRequestSuccess() {
  358. this.$message.success("发送成功");
  359. }
  360. },
  361. computed: {
  362. DialogVisible: {
  363. set(val) {
  364. this.fresh = false;
  365. this.$nextTick(() => {
  366. this.fresh = true
  367. })
  368. this.$emit("sendVal", val); // 表示将子组件改变的值传递给父组件
  369. },
  370. get() {
  371. if(this.formModelVisible)
  372. {
  373. this.update();
  374. }
  375. return this.formModelVisible; // 表示获取父组件的值
  376. }
  377. }
  378. }
  379. };
  380. </script>