BaseForm.vue 52 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447
  1. <template>
  2. <a-card :bordered="false" v-show="visible" class="card" :title="modalTitle">
  3. <a-row :gutter="48" slot="extra">
  4. <a-col :md="48" :sm="48">
  5. <span class="table-page-search-submitButtons" style="float: right">
  6. <a-button type="primary" @click="save()">提交</a-button>
  7. <a-button style="margin-left: 8px" @click="handleFresh()">刷新位置</a-button>
  8. <a-button style="margin-left: 8px" @click="handleCancel()">返回</a-button>
  9. </span>
  10. </a-col>
  11. </a-row>
  12. <title-divider title="基本信息" width="90px"></title-divider>
  13. <a-form :form="form">
  14. <a-form-item v-show="false" >
  15. <a-input v-decorator="['id']" type="hidden"/>
  16. <a-input v-decorator="['parentId']" type="hidden"/>
  17. </a-form-item>
  18. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  19. <a-col :lg="12" :md="24" :sm="24">
  20. <a-form-item
  21. label="设备(新号)"
  22. :labelCol="BaseTool.Constant.labelCol"
  23. :wrapperCol="BaseTool.Constant.wrapperCol"
  24. >
  25. <a-input
  26. v-decorator="['no', {rules: [{required: true, message: '不能为空'}]}]" />
  27. </a-form-item>
  28. </a-col>
  29. <a-col :lg="12" :md="24" :sm="24">
  30. <a-form-item
  31. label="设备(旧号)"
  32. :labelCol="BaseTool.Constant.labelCol"
  33. :wrapperCol="BaseTool.Constant.wrapperCol"
  34. >
  35. <a-input
  36. v-decorator="['zbh', {rules: [{required: false, message: '不能为空'}]}]" />
  37. </a-form-item>
  38. </a-col>
  39. </a-row>
  40. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  41. <a-col :lg="12" :md="24" :sm="24">
  42. <a-form-item
  43. label="设备名称"
  44. :labelCol="BaseTool.Constant.labelCol"
  45. :wrapperCol="BaseTool.Constant.wrapperCol"
  46. >
  47. <a-input
  48. v-decorator="['name', {rules: [{required: true, message: '设备名称不能为空'}]}]" />
  49. </a-form-item>
  50. </a-col>
  51. <a-col :lg="12" :md="24" :sm="24">
  52. <a-form-item
  53. label="型号"
  54. :labelCol="BaseTool.Constant.labelCol"
  55. :wrapperCol="BaseTool.Constant.wrapperCol"
  56. >
  57. <a-input
  58. v-decorator="['model', {rules: [{required: true, message: '设备型号不能为空'}]}]" />
  59. </a-form-item>
  60. </a-col>
  61. </a-row>
  62. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  63. <a-col :lg="12" :md="24" :sm="24">
  64. <a-form-item
  65. label="是否固定资产"
  66. :labelCol="BaseTool.Constant.labelCol"
  67. :wrapperCol="BaseTool.Constant.wrapperCol"
  68. >
  69. <a-select v-decorator="['isFinancing', { rules: [{required: true, message: '是否显示不能为空'}]}]" placeholder="请选择">
  70. <a-select-option
  71. v-for="(label,value) in isFinancingMap"
  72. :key="value"
  73. :label="label"
  74. :value="parseInt(value)">{{ label }}
  75. </a-select-option>
  76. </a-select>
  77. </a-form-item>
  78. </a-col>
  79. </a-row>
  80. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  81. <a-col :lg="12" :md="24" :sm="24">
  82. <a-form-item
  83. label="设备等级"
  84. :labelCol="BaseTool.Constant.labelCol"
  85. :wrapperCol="BaseTool.Constant.wrapperCol"
  86. >
  87. <a-select v-decorator="['level', {initialValue:1, rules: [{required: true, message: '设备等级不能为空'}]}]" placeholder="请选择">
  88. <a-select-option
  89. v-for="(label,value) in levelMap"
  90. :key="value"
  91. :label="label"
  92. :value="parseInt(value)">{{ label }}
  93. </a-select-option>
  94. </a-select>
  95. </a-form-item>
  96. </a-col>
  97. <a-col :lg="12" :md="24" :sm="24">
  98. <a-form-item
  99. label="设备价格"
  100. :labelCol="BaseTool.Constant.labelCol"
  101. :wrapperCol="BaseTool.Constant.wrapperCol"
  102. >
  103. <a-input-number
  104. style="width: 100%"
  105. :min="0"
  106. :step="0.01"
  107. :formatter="BaseTool.Amount.formatter"
  108. :parser="BaseTool.Amount.parser"
  109. v-decorator="['initialValue', {rules: [{required: true, message: '设备原值不能为空'}]}]" />
  110. </a-form-item>
  111. </a-col>
  112. </a-row>
  113. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  114. <a-col :lg="12" :md="24" :sm="24">
  115. <a-form-item
  116. label="设备类型"
  117. :labelCol="BaseTool.Constant.labelCol"
  118. :wrapperCol="BaseTool.Constant.wrapperCol"
  119. >
  120. <a-tree-select
  121. style="width: 100%"
  122. :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
  123. :treeData="sbTypeTreeData"
  124. :treeNodeFilterProp="'title'"
  125. :showSearch="true"
  126. v-decorator="['typeId', {rules: [{required: true, message: '设备类型不能为空'}]}]"
  127. placeholder="请选择"
  128. >
  129. </a-tree-select>
  130. </a-form-item>
  131. </a-col>
  132. <a-col :lg="12" :md="24" :sm="24">
  133. <a-form-item
  134. label="自定义类型"
  135. :labelCol="BaseTool.Constant.labelCol"
  136. :wrapperCol="BaseTool.Constant.wrapperCol"
  137. >
  138. <a-select @change="handleChange" v-decorator="['useType', {rules: [{required: true, message: '自定义类型不能为空'}]}]" placeholder="请选择">
  139. <a-select-option
  140. v-for="(label,value) in useTypeMap"
  141. :key="value"
  142. :label="label"
  143. :value="parseInt(value)">{{ label }}
  144. </a-select-option>
  145. </a-select>
  146. </a-form-item>
  147. </a-col>
  148. </a-row>
  149. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  150. <a-col :lg="12" :md="24" :sm="24">
  151. <a-form-item
  152. label="状态"
  153. :labelCol="BaseTool.Constant.labelCol"
  154. :wrapperCol="BaseTool.Constant.wrapperCol"
  155. >
  156. <a-select v-decorator="['status', {rules: [{required: true, message: '状态不能为空'}]}]" placeholder="请选择">
  157. <a-select-option
  158. v-for="(label,value) in statusMap"
  159. :key="value"
  160. :label="label"
  161. :value="parseInt(value)">{{ label }}
  162. </a-select-option>
  163. </a-select>
  164. </a-form-item>
  165. </a-col>
  166. </a-row>
  167. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  168. <a-col :lg="12" :md="24" :sm="24">
  169. <a-form-item
  170. label="大小/尺寸"
  171. :labelCol="BaseTool.Constant.labelCol"
  172. :wrapperCol="BaseTool.Constant.wrapperCol"
  173. >
  174. <a-input
  175. v-decorator="['zz']" />
  176. </a-form-item>
  177. </a-col>
  178. <a-col :lg="12" :md="24" :sm="24">
  179. <a-form-item
  180. label="系列号(出厂编号)"
  181. :labelCol="BaseTool.Constant.labelCol"
  182. :wrapperCol="BaseTool.Constant.wrapperCol"
  183. >
  184. <a-input
  185. v-decorator="['zzh']" />
  186. </a-form-item>
  187. </a-col>
  188. </a-row>
  189. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  190. <a-col :lg="12" :md="24" :sm="24">
  191. <a-form-item
  192. label="使用位置"
  193. :labelCol="BaseTool.Constant.labelCol"
  194. :wrapperCol="BaseTool.Constant.wrapperCol"
  195. >
  196. <a-input
  197. v-decorator="['cph']" />
  198. </a-form-item>
  199. </a-col>
  200. <a-col :lg="12" :md="24" :sm="24">
  201. <a-form-item
  202. label="生产商"
  203. :labelCol="BaseTool.Constant.labelCol"
  204. :wrapperCol="BaseTool.Constant.wrapperCol"
  205. >
  206. <a-input
  207. style="width: 70%"
  208. disabled
  209. v-decorator="['producerName', {rules: [{required: true, message: '生产商不能为空'}]}]" />
  210. <a-button style="width: 30%" type="primary" @click="handleProducerSelect">选择</a-button>
  211. </a-form-item>
  212. <a-form-item
  213. label="生产商"
  214. :labelCol="BaseTool.Constant.labelCol"
  215. :wrapperCol="BaseTool.Constant.wrapperCol"
  216. v-show="false"
  217. >
  218. <a-input
  219. v-decorator="['producerId', {rules: [{required: true, message: '生产商不能为空'}]}]" />
  220. </a-form-item>
  221. </a-col>
  222. </a-row>
  223. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  224. <a-col :lg="12" :md="24" :sm="24">
  225. <a-form-item
  226. label="父设备"
  227. :labelCol="BaseTool.Constant.labelCol"
  228. :wrapperCol="BaseTool.Constant.wrapperCol"
  229. >
  230. <a-input
  231. disabled
  232. style="width: 60%"
  233. v-decorator="['parentSbName']"/>
  234. <a-button type="primary" style="width: 20%" @click="handleSbSelect">选择</a-button>
  235. <a-button type="default" style="width: 20%" @click="clearParent">清空</a-button>
  236. </a-form-item>
  237. </a-col>
  238. <a-col :lg="12" :md="24" :sm="24">
  239. <a-form-item
  240. label="是否子设备"
  241. :labelCol="BaseTool.Constant.labelCol"
  242. :wrapperCol="BaseTool.Constant.wrapperCol"
  243. >
  244. <a-select @change="childChange" v-decorator="['isChild', { rules: [{required: true, message: '是否子设备不能为空'}]}]" placeholder="请选择">
  245. <a-select-option
  246. v-for="(label,value) in isChildMap"
  247. :key="value"
  248. :label="label"
  249. :value="parseInt(value)">{{ label }}
  250. </a-select-option>
  251. </a-select>
  252. </a-form-item>
  253. </a-col>
  254. </a-row>
  255. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  256. <a-col :lg="12" :md="24" :sm="24">
  257. <a-form-item
  258. label="存放位置"
  259. :labelCol="BaseTool.Constant.labelCol"
  260. :wrapperCol="BaseTool.Constant.wrapperCol"
  261. >
  262. <a-input
  263. style="width: 100%"
  264. v-decorator="['positionId']" />
  265. </a-form-item>
  266. </a-col>
  267. <a-col :lg="12" :md="24" :sm="24">
  268. <a-form-item
  269. label="是否显示"
  270. :labelCol="BaseTool.Constant.labelCol"
  271. :wrapperCol="BaseTool.Constant.wrapperCol"
  272. >
  273. <a-select v-decorator="['isShow', { rules: [{required: true, message: '是否显示不能为空'}]}]" placeholder="请选择">
  274. <a-select-option
  275. v-for="(label,value) in isShowMap"
  276. :key="value"
  277. :label="label"
  278. :value="parseInt(value)">{{ label }}
  279. </a-select-option>
  280. </a-select>
  281. </a-form-item>
  282. </a-col>
  283. </a-row>
  284. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  285. <a-col :lg="12" :md="24" :sm="24">
  286. <a-form-item
  287. label="水平位置"
  288. :labelCol="BaseTool.Constant.labelCol"
  289. :wrapperCol="BaseTool.Constant.wrapperCol"
  290. >
  291. <a-input-number
  292. :step="1"
  293. :min="85"
  294. style="width:70%"
  295. v-decorator="['zjm']"
  296. placeholder="请输入离屏幕左上角的右方距离,最低85"/>
  297. <a-button style="width: 30%" type="primary" @click="handlePoint">设置预览</a-button>
  298. </a-form-item>
  299. </a-col>
  300. <a-col :lg="12" :md="24" :sm="24">
  301. <a-form-item
  302. label="垂直位置"
  303. :labelCol="BaseTool.Constant.labelCol"
  304. :wrapperCol="BaseTool.Constant.wrapperCol"
  305. >
  306. <a-input-number
  307. :step="1"
  308. :min="340"
  309. style="width:70%"
  310. v-decorator="['jbdh']"
  311. placeholder="请输入离屏幕左上角的下方位置,最低340"/>
  312. <a-button style="width: 30%" type="primary" @click="handlePoint">设置预览</a-button>
  313. </a-form-item>
  314. </a-col>
  315. </a-row>
  316. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  317. <a-col :lg="12" :md="24" :sm="24">
  318. <a-form-item
  319. label="备注"
  320. :labelCol="BaseTool.Constant.labelCol"
  321. :wrapperCol="BaseTool.Constant.wrapperCol"
  322. >
  323. <a-input
  324. v-decorator="['remark', {rules: [{required: false, message: '备注不能为空'}]}]" />
  325. </a-form-item>
  326. </a-col>
  327. <a-col :lg="12" :md="24" :sm="24">
  328. <a-form-item
  329. label="使用机台"
  330. :labelCol="BaseTool.Constant.labelCol"
  331. :wrapperCol="BaseTool.Constant.wrapperCol"
  332. >
  333. <a-select v-decorator="['saveUser', {rules: [{required: true, message: '项目部不能为空'}]}]" placeholder="请选择">
  334. <a-select-option
  335. v-for="({userId, realName}) in userList"
  336. :key="userId"
  337. :label="realName"
  338. :value="userId">{{ realName }}
  339. </a-select-option>
  340. </a-select>
  341. </a-form-item>
  342. </a-col>
  343. </a-row>
  344. <!-- <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  345. <a-col :lg="12" :md="24" :sm="24">
  346. <a-form-item
  347. label="所属区域"
  348. :labelCol="BaseTool.Constant.labelCol"
  349. :wrapperCol="BaseTool.Constant.wrapperCol"
  350. >
  351. <a-select @change="handleAreaChange" v-decorator="['useArea', {rules: [{required: true, message: '所属区域不能为空'}]}]" placeholder="请选择">
  352. <a-select-option
  353. v-for="({deptId, name}) in areaList"
  354. :key="deptId"
  355. :label="name"
  356. :value="deptId">{{ name }}
  357. </a-select-option>
  358. </a-select>
  359. </a-form-item>
  360. </a-col>
  361. <a-col :lg="12" :md="24" :sm="24">
  362. <a-form-item
  363. label="所属公司"
  364. :labelCol="BaseTool.Constant.labelCol"
  365. :wrapperCol="BaseTool.Constant.wrapperCol"
  366. >
  367. <a-select @change="handleCompanyChange" v-decorator="['useCompany', {rules: [{required: true, message: '所属公司不能为空'}]}]" placeholder="请选择">
  368. <a-select-option
  369. v-for="({deptId, name}) in companyList"
  370. :key="deptId"
  371. :label="name"
  372. :value="deptId">{{ name }}
  373. </a-select-option>
  374. </a-select>
  375. </a-form-item>
  376. </a-col>
  377. </a-row>
  378. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  379. <a-col :lg="12" :md="24" :sm="24">
  380. <a-form-item
  381. label="所属项目部"
  382. :labelCol="BaseTool.Constant.labelCol"
  383. :wrapperCol="BaseTool.Constant.wrapperCol"
  384. >
  385. <a-select @change="handleProjectChange" v-decorator="['useProject', {rules: [{required: true, message: '项目部不能为空'}]}]" placeholder="请选择">
  386. <a-select-option
  387. v-for="({deptId, name}) in projectList"
  388. :key="deptId"
  389. :label="name"
  390. :value="deptId">{{ name }}
  391. </a-select-option>
  392. </a-select>
  393. </a-form-item>
  394. </a-col>
  395. <a-col :lg="12" :md="24" :sm="24">
  396. <a-form-item
  397. label="所属部门"
  398. :labelCol="BaseTool.Constant.labelCol"
  399. :wrapperCol="BaseTool.Constant.wrapperCol"
  400. >
  401. <a-select @change="handleDeptChange" v-decorator="['useDept', {rules: [{required: true, message: '所属公司不能为空'}]}]" placeholder="请选择">
  402. <a-select-option
  403. v-for="({deptId, name}) in deptList"
  404. :key="deptId"
  405. :label="name"
  406. :value="deptId">{{ name }}
  407. </a-select-option>
  408. </a-select>
  409. </a-form-item>
  410. </a-col>
  411. </a-row>-->
  412. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  413. <!-- <a-col :lg="12" :md="24" :sm="24">
  414. <a-form-item
  415. label="所属班组"
  416. :labelCol="BaseTool.Constant.labelCol"
  417. :wrapperCol="BaseTool.Constant.wrapperCol"
  418. >
  419. <a-select @change="handleGroupChange" v-decorator="['useGroup', {rules: [{required: true, message: '项目部不能为空'}]}]" placeholder="请选择">
  420. <a-select-option
  421. v-for="({deptId, name}) in groupList"
  422. :key="deptId"
  423. :label="name"
  424. :value="deptId">{{ name }}
  425. </a-select-option>
  426. </a-select>
  427. </a-form-item>
  428. </a-col>-->
  429. <a-col :lg="12" :md="24" :sm="24">
  430. <a-form-item
  431. label="维修人"
  432. :labelCol="BaseTool.Constant.labelCol"
  433. :wrapperCol="BaseTool.Constant.wrapperCol"
  434. >
  435. <a-select v-decorator="['repairUser']" placeholder="请选择">
  436. <a-select-option
  437. v-for="({userId, realName}) in userList"
  438. :key="userId"
  439. :label="realName"
  440. :value="userId">{{ realName }}
  441. </a-select-option>
  442. </a-select>
  443. </a-form-item>
  444. </a-col>
  445. <a-col :lg="12" :md="24" :sm="24">
  446. <a-form-item
  447. label="第二维修人员"
  448. :labelCol="BaseTool.Constant.labelCol"
  449. :wrapperCol="BaseTool.Constant.wrapperCol"
  450. >
  451. <a-select v-decorator="['repairUserSecond']" placeholder="请选择">
  452. <a-select-option
  453. v-for="({userId, realName}) in userList"
  454. :key="userId"
  455. :label="realName"
  456. :value="userId">{{ realName }}
  457. </a-select-option>
  458. </a-select>
  459. </a-form-item>
  460. </a-col>
  461. </a-row>
  462. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  463. <a-col :lg="12" :md="24" :sm="24">
  464. <a-form-item
  465. label="购置日期"
  466. :labelCol="BaseTool.Constant.labelCol"
  467. :wrapperCol="BaseTool.Constant.wrapperCol"
  468. >
  469. <a-date-picker
  470. style="width: 100%"
  471. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  472. v-decorator="['buyDate']" />
  473. </a-form-item>
  474. </a-col>
  475. <a-col :lg="12" :md="24" :sm="24">
  476. <a-form-item
  477. label="投用日期"
  478. :labelCol="BaseTool.Constant.labelCol"
  479. :wrapperCol="BaseTool.Constant.wrapperCol"
  480. >
  481. <a-date-picker
  482. style="width: 100%"
  483. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  484. v-decorator="['startDate']" />
  485. </a-form-item>
  486. </a-col>
  487. </a-row>
  488. <title-divider title="资产编号" width="90px"></title-divider>
  489. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  490. <a-col :lg="12" :md="24" :sm="24">
  491. <a-form-item
  492. label="资产编号1"
  493. :labelCol="BaseTool.Constant.labelCol"
  494. :wrapperCol="BaseTool.Constant.wrapperCol"
  495. >
  496. <a-input
  497. v-decorator="['financingNo']" />
  498. </a-form-item>
  499. </a-col>
  500. <a-col :lg="12" :md="24" :sm="24">
  501. <a-form-item
  502. label="资产编号1"
  503. :labelCol="BaseTool.Constant.labelCol"
  504. :wrapperCol="BaseTool.Constant.wrapperCol"
  505. >
  506. <a-input
  507. v-decorator="['financingNoTwo']" />
  508. </a-form-item>
  509. </a-col>
  510. </a-row>
  511. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  512. <a-col :lg="12" :md="24" :sm="24">
  513. <a-form-item
  514. label="资产编号3"
  515. :labelCol="BaseTool.Constant.labelCol"
  516. :wrapperCol="BaseTool.Constant.wrapperCol"
  517. >
  518. <a-input
  519. v-decorator="['financingNoThird']" />
  520. </a-form-item>
  521. </a-col>
  522. <a-col :lg="12" :md="24" :sm="24">
  523. <a-form-item
  524. label="资产编号4"
  525. :labelCol="BaseTool.Constant.labelCol"
  526. :wrapperCol="BaseTool.Constant.wrapperCol"
  527. >
  528. <a-input
  529. v-decorator="['financingNoFour']" />
  530. </a-form-item>
  531. </a-col>
  532. </a-row>
  533. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  534. <a-col :lg="12" :md="24" :sm="24">
  535. <a-form-item
  536. label="资产编号5"
  537. :labelCol="BaseTool.Constant.labelCol"
  538. :wrapperCol="BaseTool.Constant.wrapperCol"
  539. >
  540. <a-input
  541. v-decorator="['financingNoFive']" />
  542. </a-form-item>
  543. </a-col>
  544. </a-row>
  545. <title-divider v-show="useType == 5" title="特种信息" width="90px"></title-divider>
  546. <div v-show="useType == 5" >
  547. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  548. <a-col :lg="12" :md="24" :sm="24">
  549. <a-form-item
  550. label="注册代码"
  551. :labelCol="BaseTool.Constant.labelCol"
  552. :wrapperCol="BaseTool.Constant.wrapperCol"
  553. >
  554. <a-input
  555. v-decorator="['registerNo']" />
  556. </a-form-item>
  557. </a-col>
  558. <a-col :lg="12" :md="24" :sm="24">
  559. <a-form-item
  560. label="介质属性"
  561. :labelCol="BaseTool.Constant.labelCol"
  562. :wrapperCol="BaseTool.Constant.wrapperCol"
  563. >
  564. <a-input
  565. v-decorator="['characterType']" />
  566. </a-form-item>
  567. </a-col>
  568. </a-row>
  569. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  570. <a-col :lg="12" :md="24" :sm="24">
  571. <a-form-item
  572. label="设备批号"
  573. :labelCol="BaseTool.Constant.labelCol"
  574. :wrapperCol="BaseTool.Constant.wrapperCol"
  575. >
  576. <a-input
  577. v-decorator="['batchNo']" />
  578. </a-form-item>
  579. </a-col>
  580. <a-col :lg="12" :md="24" :sm="24">
  581. <a-form-item
  582. label="使用登记证编号"
  583. :labelCol="BaseTool.Constant.labelCol"
  584. :wrapperCol="BaseTool.Constant.wrapperCol"
  585. >
  586. <a-input
  587. v-decorator="['usedNo']" />
  588. </a-form-item>
  589. </a-col>
  590. </a-row>
  591. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  592. <a-col :lg="12" :md="24" :sm="24">
  593. <a-form-item
  594. label="维护供应商"
  595. :labelCol="BaseTool.Constant.labelCol"
  596. :wrapperCol="BaseTool.Constant.wrapperCol"
  597. >
  598. <a-input
  599. v-decorator="['supplier']" />
  600. </a-form-item>
  601. </a-col>
  602. <a-col :lg="12" :md="24" :sm="24">
  603. <a-form-item
  604. label="登记日期"
  605. :labelCol="BaseTool.Constant.labelCol"
  606. :wrapperCol="BaseTool.Constant.wrapperCol"
  607. >
  608. <a-date-picker
  609. style="width: 100%"
  610. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  611. v-decorator="['registerDate']" />
  612. </a-form-item>
  613. </a-col>
  614. </a-row>
  615. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  616. <a-col :lg="12" :md="24" :sm="24">
  617. <a-form-item
  618. label="预计工作年限"
  619. :labelCol="BaseTool.Constant.labelCol"
  620. :wrapperCol="BaseTool.Constant.wrapperCol"
  621. >
  622. <a-input
  623. style="width: 100%"
  624. suffix="年"
  625. :formatter="BaseTool.Amount.formatter"
  626. :parser="BaseTool.Amount.parser"
  627. v-decorator="['workYear']" />
  628. </a-form-item>
  629. </a-col>
  630. <a-col :lg="12" :md="24" :sm="24">
  631. <a-form-item
  632. label="设计到期年限"
  633. :labelCol="BaseTool.Constant.labelCol"
  634. :wrapperCol="BaseTool.Constant.wrapperCol"
  635. >
  636. <a-date-picker
  637. style="width: 100%"
  638. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  639. v-decorator="['retirementDate']" />
  640. </a-form-item>
  641. </a-col>
  642. </a-row>
  643. </div>
  644. <title-divider v-show="useType == 4" title="计量信息" width="90px"></title-divider>
  645. <div v-show="useType == 4" >
  646. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  647. <a-col :lg="12" :md="24" :sm="24">
  648. <a-form-item
  649. label="测量设备编号"
  650. :labelCol="BaseTool.Constant.labelCol"
  651. :wrapperCol="BaseTool.Constant.wrapperCol"
  652. >
  653. <a-input
  654. v-decorator="['cardNo']" />
  655. </a-form-item>
  656. </a-col>
  657. <a-col :lg="12" :md="24" :sm="24">
  658. <a-form-item
  659. label="准确度等级"
  660. :labelCol="BaseTool.Constant.labelCol"
  661. :wrapperCol="BaseTool.Constant.wrapperCol"
  662. >
  663. <a-input
  664. v-decorator="['fdjxh']" />
  665. </a-form-item>
  666. </a-col>
  667. </a-row>
  668. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  669. <a-col :lg="12" :md="24" :sm="24">
  670. <a-form-item
  671. label="检定单位"
  672. :labelCol="BaseTool.Constant.labelCol"
  673. :wrapperCol="BaseTool.Constant.wrapperCol"
  674. >
  675. <a-input
  676. v-decorator="['dph']" />
  677. </a-form-item>
  678. </a-col>
  679. <a-col :lg="12" :md="24" :sm="24">
  680. <a-form-item
  681. label="检定人"
  682. :labelCol="BaseTool.Constant.labelCol"
  683. :wrapperCol="BaseTool.Constant.wrapperCol"
  684. >
  685. <a-input
  686. v-decorator="['zaiz']" />
  687. </a-form-item>
  688. </a-col>
  689. </a-row>
  690. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  691. <a-col :lg="12" :md="24" :sm="24">
  692. <a-form-item
  693. label="检定结论"
  694. :labelCol="BaseTool.Constant.labelCol"
  695. :wrapperCol="BaseTool.Constant.wrapperCol"
  696. >
  697. <a-select v-decorator="['rlType']" placeholder="请选择">
  698. <a-select-option
  699. v-for="(label,value) in rlTypeMap"
  700. :key="value"
  701. :label="label"
  702. :value="parseInt(value)">{{ label }}
  703. </a-select-option>
  704. </a-select>
  705. </a-form-item>
  706. </a-col>
  707. <a-col :lg="12" :md="24" :sm="24">
  708. <a-form-item
  709. label="是否周检查"
  710. :labelCol="BaseTool.Constant.labelCol"
  711. :wrapperCol="BaseTool.Constant.wrapperCol"
  712. >
  713. <a-select v-decorator="['color']" placeholder="请选择">
  714. <a-select-option
  715. v-for="(label,value) in colorMap"
  716. :key="value"
  717. :label="label"
  718. :value="parseInt(value)">{{ label }}
  719. </a-select-option>
  720. </a-select>
  721. </a-form-item>
  722. </a-col>
  723. </a-row>
  724. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  725. <a-col :lg="12" :md="24" :sm="24">
  726. <a-form-item
  727. label="检定证书编号"
  728. :labelCol="BaseTool.Constant.labelCol"
  729. :wrapperCol="BaseTool.Constant.wrapperCol"
  730. >
  731. <a-input
  732. v-decorator="['sbdh']" />
  733. </a-form-item>
  734. </a-col>
  735. <a-col :lg="12" :md="24" :sm="24">
  736. <a-form-item
  737. label="预警天数"
  738. :labelCol="BaseTool.Constant.labelCol"
  739. :wrapperCol="BaseTool.Constant.wrapperCol"
  740. >
  741. <a-input-number
  742. style="width: 100%"
  743. :min="0"
  744. :step="0.01"
  745. :formatter="BaseTool.Amount.formatter"
  746. :parser="BaseTool.Amount.parser"
  747. v-decorator="['seatNumber']" />
  748. </a-form-item>
  749. </a-col>
  750. </a-row>
  751. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  752. <a-col :lg="12" :md="24" :sm="24">
  753. <a-form-item
  754. label="检定日期"
  755. :labelCol="BaseTool.Constant.labelCol"
  756. :wrapperCol="BaseTool.Constant.wrapperCol"
  757. >
  758. <a-date-picker
  759. style="width: 100%"
  760. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  761. v-decorator="['checkDate']" />
  762. </a-form-item>
  763. </a-col>
  764. <a-col :lg="12" :md="24" :sm="24">
  765. <a-form-item
  766. label="检定周期"
  767. :labelCol="BaseTool.Constant.labelCol"
  768. :wrapperCol="BaseTool.Constant.wrapperCol"
  769. >
  770. <a-input
  771. style="width: 100%"
  772. suffix="月"
  773. :formatter="BaseTool.Amount.formatter"
  774. :parser="BaseTool.Amount.parser"
  775. v-decorator="['checkPeriod']" />
  776. </a-form-item>
  777. </a-col>
  778. </a-row>
  779. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  780. <a-col :lg="12" :md="24" :sm="24">
  781. <a-form-item
  782. label="检定有效期至"
  783. :labelCol="BaseTool.Constant.labelCol"
  784. :wrapperCol="BaseTool.Constant.wrapperCol"
  785. >
  786. <a-date-picker
  787. style="width: 100%"
  788. :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
  789. v-decorator="['nextCheckDate']" />
  790. </a-form-item>
  791. </a-col>
  792. </a-row>
  793. </div>
  794. <title-divider title="文件信息" width="90px"></title-divider>
  795. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  796. <a-col :lg="12" :md="24" :sm="24">
  797. <a-form-item
  798. label="维保手册"
  799. :labelCol="BaseTool.Constant.labelCol"
  800. :wrapperCol="BaseTool.Constant.wrapperCol"
  801. >
  802. <a-upload
  803. :action="uploadUrl"
  804. :multiple="true"
  805. :file-list="this.defaultRepairFileList"
  806. @change="handleRepairFileChange"
  807. :headers="headers"
  808. >
  809. <a-button> <a-icon type="upload" /> 选择上传文件 </a-button>
  810. </a-upload>
  811. </a-form-item>
  812. </a-col>
  813. <a-col :lg="12" :md="24" :sm="24">
  814. <a-form-item
  815. label="使用手册"
  816. :labelCol="BaseTool.Constant.labelCol"
  817. :wrapperCol="BaseTool.Constant.wrapperCol"
  818. >
  819. <a-upload
  820. :action="uploadUrl"
  821. :multiple="true"
  822. :file-list="this.defaultUseFileList"
  823. @change="handleUseFileChange"
  824. :headers="headers"
  825. >
  826. <a-button> <a-icon type="upload" /> 选择上传文件 </a-button>
  827. </a-upload>
  828. </a-form-item>
  829. </a-col>
  830. </a-row>
  831. <a-row class="form-row" :gutter="BaseTool.Constant.row.gutter">
  832. <a-col :lg="12" :md="24" :sm="24">
  833. <a-form-item
  834. label="验收文件"
  835. :labelCol="BaseTool.Constant.labelCol"
  836. :wrapperCol="BaseTool.Constant.wrapperCol"
  837. >
  838. <a-upload
  839. :action="uploadUrl"
  840. :multiple="true"
  841. :file-list="this.defaultRecheckFileList"
  842. @change="handleRecheckFileChange"
  843. :headers="headers"
  844. >
  845. <a-button> <a-icon type="upload" /> 选择上传文件 </a-button>
  846. </a-upload>
  847. </a-form-item>
  848. </a-col>
  849. <a-col :lg="12" :md="24" :sm="24">
  850. <a-form-item
  851. label="设备图片"
  852. :labelCol="BaseTool.Constant.labelCol"
  853. :wrapperCol="BaseTool.Constant.wrapperCol"
  854. >
  855. <a-upload
  856. :action="uploadUrl"
  857. :multiple="true"
  858. :file-list="this.defaultSbFileList"
  859. @change="handleSbFileChange"
  860. accept="image/*"
  861. :headers="headers"
  862. >
  863. <a-button> <a-icon type="upload" /> 选择上传文件 </a-button>
  864. </a-upload>
  865. </a-form-item>
  866. </a-col>
  867. </a-row>
  868. </a-form>
  869. <sb-model-select-modal ref="sbModelSelectModal" @selected="handleSbModelSelected"/>
  870. <sb-info-select-modal ref="sbInfoSelectModal" @selected="handleSbSelectd"/>
  871. <firm-producer-select-modal ref="producerSelectModal" @selected="handleProducerSelected"/>
  872. </a-card>
  873. </template>
  874. <script>
  875. import pick from 'lodash.pick'
  876. import { addSbInfo, updateSbInfo, fetchSbInfo, copySbInfo } from '@/api/sb/info'
  877. import { fetchSbTypeTree } from '@/api/sb/type'
  878. import FirmProducerSelectModal from '@/views/firm/producer/modules/FirmProducerSelectModal'
  879. import SbGuigeSelectModal from '@/views/sb/guige/modules/SbGuigeSelectModal'
  880. import SbModelSelectModal from '@/views/sb/model/modules/SbModelSelectModal'
  881. import BaseTool from '../../../../utils/tool'
  882. import { queryUserDeptByUserDeptId } from '@/api/upms/user-dept'
  883. import { ACCESS_TOKEN } from '@/store/mutation-types'
  884. import Vue from 'vue'
  885. import { uploadUrl } from '@/api/upms/file'
  886. import { queryDept, getDeptsAllByParentId } from '@/api/upms/dept'
  887. import { queryUser } from '@/api/upms/user'
  888. import SbInfoSelectModal from '@/views/sb/info/modules/SbInfoSelectModal'
  889. export default {
  890. name: 'BaseSbInfo',
  891. components: {
  892. FirmProducerSelectModal,
  893. SbGuigeSelectModal,
  894. SbModelSelectModal,
  895. SbInfoSelectModal
  896. },
  897. data () {
  898. return {
  899. confirmLoading: false,
  900. modalTitle: null,
  901. form: this.$form.createForm(this),
  902. areaList: {},
  903. companyList: {},
  904. projectList: {},
  905. deptList: {},
  906. groupList: {},
  907. visible: false,
  908. sbTypeTreeData: [],
  909. // sbInfoTreeData: [],
  910. // sourceSbInfoTreeData: [],
  911. // sbPositionTreeData: [],
  912. depreciationTypeMap: {},
  913. sourceTypeMap: {},
  914. levelMap: {},
  915. rlTypeMap: {},
  916. colorMap: {},
  917. useTypeMap: {},
  918. statusMap: {},
  919. isChildMap: {},
  920. isShowMap: {},
  921. isFinancingMap: {},
  922. userList: {},
  923. unitMap: {},
  924. sbInfoSelectType: null,
  925. repairFileList: [], // 维修手册
  926. defaultRepairFileList: [],
  927. defaultUseFileList: [],
  928. defaultRecheckFileList: [],
  929. defaultSbFileList: [],
  930. useFileList: [], // 使用手册
  931. recheckFileList: [], // 验收手册
  932. sbFileList: [], // 设备图片,
  933. uploadUrl: uploadUrl,
  934. qrcodesrc: null,
  935. id: null,
  936. fileList: [],
  937. type: null,
  938. headers: {
  939. Authorization: 'Bearer ' + Vue.ls.get(ACCESS_TOKEN)
  940. }
  941. }
  942. },
  943. props: {
  944. useType: {
  945. type: Number,
  946. default: 3
  947. }
  948. },
  949. created () {
  950. this.depreciationTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_DEPRECIATIONTYPE)
  951. this.levelMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_LEVEL)
  952. this.colorMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_COLOR)
  953. this.rlTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.RANLIAO_TYPE)
  954. this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_INFO_STATUS)
  955. this.unitMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBINFO_UNIT)
  956. this.sourceTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SBTYPE_SOURCETYPE)
  957. this.useTypeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_USE_TYPE)
  958. this.isChildMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_IS_CHILD)
  959. this.isShowMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_IS_SHOW)
  960. this.isFinancingMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SB_IS_FINANCING)
  961. },
  962. methods: {
  963. base (record, type) {
  964. this.setTree(record)
  965. // 清除文件列表
  966. this.visible = true
  967. // 选择框查询条件
  968. // 如果是空标识添加
  969. if (this.BaseTool.Object.isBlank(record)) {
  970. this.qrcodesrc = null
  971. this.modalTitle = '添加'
  972. this.clearFileList()
  973. return
  974. }
  975. this.useType = record.useType
  976. this.modalTitle = '编辑'
  977. this.id = record.id
  978. this.qrcodesrc = record.qrCode
  979. this.repairFileList = record.repairFileList
  980. this.useFileList = record.useFileList
  981. this.recheckFileList = record.recheckFileList
  982. this.sbFileList = record.sbFileList
  983. this.defaultRepairFileList = this.BaseTool.UPLOAD.transImg(this.repairFileList)
  984. this.defaultUseFileList = this.BaseTool.UPLOAD.transImg(this.useFileList)
  985. this.defaultRecheckFileList = this.BaseTool.UPLOAD.transImg(this.recheckFileList)
  986. this.defaultSbFileList = this.BaseTool.UPLOAD.transImg(this.sbFileList)
  987. if (type === 1) {
  988. this.type = type
  989. this.modalTitle = '复制'
  990. this.qrcodesrc = null
  991. record.no = null
  992. this.clearFileList()
  993. }
  994. const { form: { setFieldsValue } } = this
  995. // 日期处理
  996. // record.buyDate = this.BaseTool.Moment(record.buyDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  997. // record.startDate = this.BaseTool.Moment(record.startDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  998. // record.nextCheckDate = this.BaseTool.Moment(record.nextCheckDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  999. // record.guaranteeDate = this.BaseTool.Moment(record.guaranteeDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1000. // record.retirementDate = this.BaseTool.Moment(record.retirementDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1001. // record.lastRepaireTime = this.BaseTool.Moment(record.lastRepaireTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1002. // record.lastBaoyangTime = this.BaseTool.Moment(record.lastBaoyangTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1003. if (record.buyDate != null) {
  1004. record.buyDate = this.BaseTool.Moment(record.buyDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1005. this.$nextTick(() => {
  1006. setFieldsValue(Object.assign(pick(record, [
  1007. 'buyDate'
  1008. ])))
  1009. })
  1010. }
  1011. if (record.startDate != null) {
  1012. record.startDate = this.BaseTool.Moment(record.startDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1013. this.$nextTick(() => {
  1014. setFieldsValue(Object.assign(pick(record, [
  1015. 'startDate'
  1016. ])))
  1017. })
  1018. }
  1019. if (record.checkDate != null) {
  1020. record.checkDate = this.BaseTool.Moment(record.checkDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1021. this.$nextTick(() => {
  1022. setFieldsValue(Object.assign(pick(record, [
  1023. 'checkDate'
  1024. ])))
  1025. })
  1026. }
  1027. if (record.nextCheckDate != null) {
  1028. record.nextCheckDate = this.BaseTool.Moment(record.nextCheckDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1029. this.$nextTick(() => {
  1030. setFieldsValue(Object.assign(pick(record, [
  1031. 'nextCheckDate'
  1032. ])))
  1033. })
  1034. }
  1035. if (record.retirementDate != null) {
  1036. record.retirementDate = this.BaseTool.Moment(record.retirementDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1037. this.$nextTick(() => {
  1038. setFieldsValue(Object.assign(pick(record, [
  1039. 'retirementDate'
  1040. ])))
  1041. })
  1042. }
  1043. if (record.registerDate != null) {
  1044. record.registerDate = this.BaseTool.Moment(record.registerDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1045. this.$nextTick(() => {
  1046. setFieldsValue(Object.assign(pick(record, [
  1047. 'registerDate'
  1048. ])))
  1049. })
  1050. }
  1051. record.unitName = this.BaseTool.Object.getField(this.unitMap, record.unit)
  1052. record.useTypeName = this.BaseTool.Object.getField(this.useTypeMap, record.useType)
  1053. this.$nextTick(() => {
  1054. setFieldsValue(Object.assign(pick(record, [
  1055. 'id',
  1056. 'no',
  1057. 'parentId',
  1058. 'parentSbName',
  1059. 'isChild',
  1060. 'isShow',
  1061. 'isFinancing',
  1062. 'financingNo',
  1063. 'financingNoTwo',
  1064. 'financingNoThird',
  1065. 'financingNoFour',
  1066. 'financingNoFive',
  1067. 'name',
  1068. 'model',
  1069. 'cph',
  1070. 'positionId',
  1071. 'producerName',
  1072. 'useArea',
  1073. 'useCompany',
  1074. 'useProject',
  1075. 'useDept',
  1076. 'saveUser',
  1077. 'repairUser',
  1078. 'useGroup',
  1079. 'typeId',
  1080. 'level',
  1081. 'initialValue',
  1082. // 'cutValue',
  1083. 'producerId',
  1084. // 'sourceType',
  1085. 'unit',
  1086. 'buyDate',
  1087. 'startDate',
  1088. 'zbh',
  1089. // 'wbFile',
  1090. // 'useFile',
  1091. // 'checkFile',
  1092. // 'sbImage',
  1093. 'status',
  1094. 'remark',
  1095. 'zzh',
  1096. 'zz',
  1097. 'zjm',
  1098. 'jbdh',
  1099. 'useType',
  1100. 'cardNo',
  1101. 'fdjxh',
  1102. 'checkDate',
  1103. 'checkPeriod',
  1104. 'nextCheckDate',
  1105. 'dph',
  1106. 'zaiz',
  1107. 'rlType',
  1108. 'color',
  1109. 'sbdh',
  1110. 'seatNumber',
  1111. 'registerNo',
  1112. 'characterType',
  1113. 'usedNo',
  1114. 'supplier',
  1115. 'repairUserSecond',
  1116. 'batchNo',
  1117. 'workYear',
  1118. 'retirementDate',
  1119. 'registerDate'
  1120. ])))
  1121. })
  1122. },
  1123. save () {
  1124. const { form: { validateFieldsAndScroll } } = this
  1125. this.confirmLoading = true
  1126. validateFieldsAndScroll((errors, values) => {
  1127. if (errors) {
  1128. this.confirmLoading = false
  1129. return
  1130. }
  1131. // 日期数据的处理
  1132. values.buyDate = BaseTool.Date.formatter(values.buyDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1133. values.startDate = BaseTool.Date.formatter(values.startDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1134. values.checkDate = BaseTool.Date.formatter(values.checkDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1135. values.nextCheckDate = BaseTool.Date.formatter(values.nextCheckDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1136. values.guaranteeDate = BaseTool.Date.formatter(values.guaranteeDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1137. values.retirementDate = BaseTool.Date.formatter(values.retirementDate, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1138. values.lastRepaireTime = this.BaseTool.Date.formatter(values.lastRepaireTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1139. values.lastBaoyangTime = this.BaseTool.Date.formatter(values.lastBaoyangTime, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1140. values.spDate = this.BaseTool.Date.formatter(values.spDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1141. values.jbdDate = this.BaseTool.Date.formatter(values.jbdDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1142. values.sbdDate = this.BaseTool.Date.formatter(values.sbdDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1143. values.sbDate = this.BaseTool.Date.formatter(values.sbDate, this.BaseTool.Date.PICKER_NORM_DATE_PATTERN)
  1144. // 上传文件
  1145. values.repairFileList = this.repairFileList
  1146. values.useFileList = this.useFileList
  1147. values.recheckFileList = this.recheckFileList
  1148. values.sbFileList = this.sbFileList
  1149. values.useType = this.useType
  1150. if (this.BaseTool.String.isBlank(values.id)) {
  1151. addSbInfo(values)
  1152. .then(() => {
  1153. this.handleCancel(values)
  1154. }).catch(() => {
  1155. this.confirmLoading = false
  1156. })
  1157. } else {
  1158. if (this.type == null) {
  1159. updateSbInfo(values)
  1160. .then(() => {
  1161. this.handleCancel(values)
  1162. }).catch(() => {
  1163. this.confirmLoading = false
  1164. })
  1165. } else {
  1166. copySbInfo(values)
  1167. .then(() => {
  1168. this.handleCancel(values)
  1169. }).catch(() => {
  1170. this.confirmLoading = false
  1171. })
  1172. }
  1173. }
  1174. })
  1175. },
  1176. getQrcodeSrc () {
  1177. console.log(111, 22)
  1178. },
  1179. handleCancel () {
  1180. this.visible = false
  1181. this.confirmLoading = false
  1182. this.form.resetFields()
  1183. this.$emit('ok')
  1184. },
  1185. handleFresh () {
  1186. fetchSbInfo({ id: this.id }).then(res => {
  1187. const { form: { setFieldsValue } } = this
  1188. const record = res.data
  1189. this.$nextTick(() => {
  1190. setFieldsValue(Object.assign(pick(record, [
  1191. 'zjm',
  1192. 'jbdh'
  1193. ])))
  1194. })
  1195. })
  1196. },
  1197. setTree (record = {}) {
  1198. fetchSbTypeTree().then(res => {
  1199. this.sbTypeTreeData = res.data
  1200. })
  1201. // getSbInfoTree({ id: record.id }).then(res => {
  1202. // this.sbInfoTreeData = res.data
  1203. // this.sourceSbInfoTreeData = res.data
  1204. // })
  1205. // getSbPositionTree().then(res => {
  1206. // this.sbPositionTreeData = res.data
  1207. // })
  1208. queryDept({ nature: this.DictCache.VALUE.SYS_DEPT_NATURE.JITUAN }).then(res => {
  1209. this.areaList = res.data
  1210. })
  1211. if (record.useArea != null) {
  1212. getDeptsAllByParentId({ deptId: record.useArea, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.FEN_GONG_SI }).then(res => {
  1213. this.companyList = res.data
  1214. })
  1215. getDeptsAllByParentId({ deptId: record.useCompany, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.XIANG_MU_BU }).then(res => {
  1216. this.projectList = res.data
  1217. })
  1218. getDeptsAllByParentId({ deptId: record.useProject, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.BU_MEN }).then(res => {
  1219. this.deptList = res.data
  1220. })
  1221. getDeptsAllByParentId({ deptId: record.useDept, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.BAN_ZU }).then(res => {
  1222. this.groupList = res.data
  1223. })
  1224. queryUser({ }).then(res => {
  1225. this.userList = res.data
  1226. })
  1227. }
  1228. queryUser({ }).then(res => {
  1229. this.userList = res.data
  1230. })
  1231. },
  1232. handleSbModelSelect () {
  1233. const modal = this.$refs.sbModelSelectModal
  1234. modal.base()
  1235. },
  1236. handleSbModelSelected (keys, rows) {
  1237. const [ key ] = keys
  1238. const [ row ] = rows
  1239. const { form: { setFieldsValue } } = this
  1240. this.$nextTick(() => {
  1241. setFieldsValue({
  1242. 'modelId': key,
  1243. 'name': row.name,
  1244. 'model': row.model,
  1245. 'nameModel': row.nameModel,
  1246. 'typeId': row.typeId,
  1247. 'typeName': row.typeName,
  1248. 'level': row.level,
  1249. 'initialValue': row.value,
  1250. 'useType': row.useType,
  1251. 'useTypeName': this.BaseTool.Object.getField(this.useTypeMap, row.useType),
  1252. 'producerId': row.producerId,
  1253. 'producerName': row.producerName,
  1254. 'unit': row.unit,
  1255. 'unitName': this.BaseTool.Object.getField(this.unitMap, row.unit)
  1256. })
  1257. })
  1258. },
  1259. beforeRecheckFileListUpload (file) {
  1260. const reg = /\.(xls|xlsx)(\?.*)?$/
  1261. return new Promise((resolve, reject) => {
  1262. if (reg.test(file.name)) {
  1263. this.recheckFileList = [file]
  1264. return true
  1265. } else {
  1266. this.$message.error(`请上传正确的xls|xlsx文件`)
  1267. reject(new Error('请上传正确的xls|xlsx文件'))
  1268. return false
  1269. }
  1270. })
  1271. },
  1272. beforeUploadPic (file) {
  1273. const reg = /\.(jpg|jpeg|png)(\?.*)?$/
  1274. return new Promise((resolve, reject) => {
  1275. if (reg.test(file.name)) {
  1276. this.sbFileList = [file]
  1277. return true
  1278. } else {
  1279. this.$message.error(`请上传正确的jpg|jpeg|png文件`)
  1280. reject(new Error('请上传正确的jpg|jpeg|png文件'))
  1281. return false
  1282. }
  1283. })
  1284. },
  1285. clearFileList () {
  1286. this.repairFileList = []
  1287. this.useFileList = []
  1288. this.recheckFileList = []
  1289. this.sbFileList = []
  1290. },
  1291. handleRepairFileChange (info) {
  1292. this.defaultRepairFileList = info.fileList
  1293. this.repairFileList = this.setFileList(info, 1)
  1294. },
  1295. handleUseFileChange (info) {
  1296. this.defaultUseFileList = info.fileList
  1297. this.useFileList = this.setFileList(info, 2)
  1298. },
  1299. handleAreaChange (value) {
  1300. getDeptsAllByParentId({ deptId: value, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.FEN_GONG_SI }).then(res => {
  1301. this.companyList = res.data
  1302. })
  1303. },
  1304. handleCompanyChange (value) {
  1305. getDeptsAllByParentId({ deptId: value, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.XIANG_MU_BU }).then(res => {
  1306. this.projectList = res.data
  1307. })
  1308. },
  1309. handleProjectChange (value) {
  1310. getDeptsAllByParentId({ deptId: value, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.BU_MEN }).then(res => {
  1311. this.deptList = res.data
  1312. })
  1313. },
  1314. handleDeptChange (value) {
  1315. getDeptsAllByParentId({ deptId: value, nature: this.DictCache.VALUE.SYS_DEPT_NATURE.BAN_ZU }).then(res => {
  1316. this.groupList = res.data
  1317. })
  1318. },
  1319. handleGroupChange (value) {
  1320. queryUserDeptByUserDeptId({ deptId: value }).then(res => {
  1321. this.userList = res.data
  1322. })
  1323. },
  1324. handleRecheckFileChange (info) {
  1325. this.defaultRecheckFileList = info.fileList
  1326. this.recheckFileList = this.setFileList(info, 3)
  1327. },
  1328. handleSbFileChange (info) {
  1329. this.defaultSbFileList = info.fileList
  1330. this.sbFileList = this.setFileList(info, 4)
  1331. },
  1332. setFileList1 (info, type) {
  1333. const fileList = [...info.fileList]
  1334. const file = [...info.file]
  1335. if (file.status === 'done') {
  1336. return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
  1337. } else if (file.status === 'removed') {
  1338. return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
  1339. } else if (file.status === 'error') {
  1340. this.$message.error('上传失败')
  1341. return []
  1342. }
  1343. },
  1344. clearParent () {
  1345. const { form: { setFieldsValue } } = this
  1346. // 日期处理
  1347. this.$nextTick(() => {
  1348. setFieldsValue(Object.assign({
  1349. 'parentId': null,
  1350. 'parentSbName': null
  1351. }))
  1352. })
  1353. },
  1354. // 主子设备切换
  1355. childChange (value) {
  1356. if (value === this.DictCache.VALUE.SB_IS_CHILD.IS_PARENT || value === this.DictCache.VALUE.SB_IS_CHILD.IS_NORMAL) {
  1357. const { form: { setFieldsValue } } = this
  1358. // 日期处理
  1359. this.$nextTick(() => {
  1360. setFieldsValue(Object.assign({
  1361. 'parentId': null,
  1362. 'parentSbName': null
  1363. }))
  1364. })
  1365. }
  1366. },
  1367. handleSbSelect () {
  1368. this.$refs.sbInfoSelectModal.base({}, { isChild: this.DictCache.VALUE.SB_IS_CHILD.IS_PARENT })
  1369. },
  1370. handleSbSelectd (keys, rows) {
  1371. const [ key ] = keys
  1372. const [ row ] = rows
  1373. const { form: { setFieldsValue } } = this
  1374. // 日期处理
  1375. this.$nextTick(() => {
  1376. setFieldsValue(Object.assign({
  1377. 'parentId': key,
  1378. 'parentSbName': row.name,
  1379. 'isChild': this.DictCache.VALUE.SB_IS_CHILD.IS_CHILD
  1380. }))
  1381. })
  1382. },
  1383. handleChange (value) {
  1384. this.useType = value
  1385. },
  1386. handleProducerSelect () {
  1387. const modal = this.$refs.producerSelectModal
  1388. modal.base({}, { type: 1 })
  1389. },
  1390. handleProducerSelected (record, selectedRowKeys, selectedRow) {
  1391. const { form: { setFieldsValue } } = this
  1392. const [ key ] = selectedRowKeys
  1393. const [ row ] = selectedRow
  1394. setFieldsValue({
  1395. 'producerId': key,
  1396. 'producerName': row.name
  1397. })
  1398. },
  1399. setFileList (info, type) {
  1400. // { file, fileList }
  1401. const file = info.file
  1402. const fileList = info.fileList
  1403. // fileList = fileList.slice(-2)
  1404. // console.log(111, this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type))
  1405. if (file.status === 'done') {
  1406. return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
  1407. } else if (file.status === 'removed') {
  1408. return this.BaseTool.UPLOAD.getUploadFileDTO(fileList, type)
  1409. } else if (file.status === 'error') {
  1410. this.$message.error('上传失败')
  1411. return null
  1412. }
  1413. },
  1414. handlePoint () {
  1415. const { form: { getFieldValue } } = this
  1416. const zjm = getFieldValue('zjm')
  1417. const jbdh = getFieldValue('jbdh')
  1418. const a = document.createElement('a')
  1419. a.href = '/hitch-screen/point.html?id=' + this.id + '&zjm=' + zjm + '&jbdh=' + jbdh
  1420. a.target = '_blank'
  1421. a.click()
  1422. }
  1423. }
  1424. }
  1425. </script>