You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

529 lines
21 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="customer-css">
  3. <el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" width="960px" style="height: 662px;" class="customer-dialog">
  4. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  5. <!-- <el-form-item label="设备编码" prop="objectID" :rules="rules.objectIdType">-->
  6. <!-- <el-input v-model="pageData.objectID" style="width: 221px"></el-input>-->
  7. <!-- </el-form-item>-->
  8. <!-- <el-form-item label="设备名称" prop="objectDesc" :rules="rules.objectDescType">-->
  9. <!-- <el-input v-model="pageData.objectDesc" style="width: 221px"></el-input>-->
  10. <!-- </el-form-item>-->
  11. <!-- </el-form>-->
  12. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  13. <!-- <el-form-item prop="locationID" :rules="rules.locationType">-->
  14. <!-- <span slot="label" @click="getBaseList(26)"><a herf="#">区域编码</a></span>-->
  15. <!-- <el-input v-model="pageData.locationID" style="width: 221px;"></el-input >-->
  16. <!-- </el-form-item>-->
  17. <!-- <el-form-item label="区域名称">-->
  18. <!-- <el-input v-model="pageData.locationName" disabled style="width: 221px"></el-input>-->
  19. <!-- </el-form-item>-->
  20. <!-- </el-form>-->
  21. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  22. <!-- <el-form-item prop="familyID" :rules="rules.familyType">-->
  23. <!-- <span slot="label" @click="getBaseList(27)"><a herf="#">分类编码</a></span>-->
  24. <!-- <el-input v-model="pageData.familyID" style="width: 221px;" ></el-input>-->
  25. <!-- </el-form-item>-->
  26. <!-- <el-form-item label="分类名称">-->
  27. <!-- <el-input v-model="pageData.familyDesc" disabled style="width: 221px"></el-input>-->
  28. <!-- </el-form-item>-->
  29. <!-- </el-form>-->
  30. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  31. <!-- <el-form-item prop="groupID" :rules="rules.groupType">-->
  32. <!-- <span slot="label" @click="getBaseList(28)"><a herf="#">分组编码</a></span>-->
  33. <!-- <el-input v-model="pageData.groupID" style="width: 221px;" ></el-input>-->
  34. <!-- </el-form-item>-->
  35. <!-- <el-form-item label="分组名称">-->
  36. <!-- <el-input v-model="pageData.groupDesc" disabled style="width: 221px"></el-input>-->
  37. <!-- </el-form-item>-->
  38. <!-- </el-form>-->
  39. <!-- <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">-->
  40. <!-- <el-form-item>-->
  41. <!-- <span slot="label" @click="getBaseList(29)"><a herf="#">供应商编码</a></span>-->
  42. <!-- <el-input v-model="pageData.supplierID" style="width: 221px;"></el-input >-->
  43. <!-- </el-form-item>-->
  44. <!-- <el-form-item label="供应商名称">-->
  45. <!-- <el-input v-model="pageData.supplierName" disabled style="width: 221px"></el-input>-->
  46. <!-- </el-form-item>-->
  47. <!-- </el-form>-->
  48. <!-- <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">-->
  49. <!-- <el-form-item>-->
  50. <!-- <span slot="label" @click="getBaseList(30)"><a herf="#">制造商编码</a></span>-->
  51. <!-- <el-input v-model="pageData.manufacturerID" style="width: 221px;" ></el-input>-->
  52. <!-- </el-form-item>-->
  53. <!-- <el-form-item label="制造商名称">-->
  54. <!-- <el-input v-model="pageData.manufacturerName" disabled style="width: 221px"></el-input>-->
  55. <!-- </el-form-item>-->
  56. <!-- </el-form>-->
  57. <!-- <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">-->
  58. <!-- <el-form-item label="序列号:">-->
  59. <!-- <el-input v-model="pageData.seqNo" style="width: 221px;"></el-input>-->
  60. <!-- </el-form-item>-->
  61. <!-- <el-form-item label="购入日期:">-->
  62. <!-- <el-date-picker v-model="pageData.purchessDate" value-format="yyyy-MM-dd HH:mm:ss" style="width: 221px;"></el-date-picker>-->
  63. <!-- </el-form-item>-->
  64. <!-- </el-form>-->
  65. <!-- <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">-->
  66. <!-- <el-form-item>-->
  67. <!-- <span slot="label" style="" @click="getBaseList(203)"><a herf="#">机台编码</a></span>-->
  68. <!-- <el-input v-model="pageData.resourceID" style="width: 221px;" ></el-input>-->
  69. <!-- </el-form-item>-->
  70. <!-- <el-form-item label="机台名称">-->
  71. <!-- <el-input v-model="pageData.resourceDesc" disabled style="width: 221px"></el-input>-->
  72. <!-- </el-form-item>-->
  73. <!-- </el-form>-->
  74. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  75. <!-- <el-form-item prop="deptID" :rules="rules.deptType">-->
  76. <!-- <span slot="label" @click="getBaseList(204)"><a herf="#">所属部门编码</a></span>-->
  77. <!-- <el-input v-model="pageData.deptID" style="width: 221px"></el-input>-->
  78. <!-- </el-form-item>-->
  79. <!-- <el-form-item label="所属部门名称">-->
  80. <!-- <el-input v-model="pageData.deptName" disabled style="width: 221px"></el-input>-->
  81. <!-- </el-form-item>-->
  82. <!-- </el-form>-->
  83. <!-- <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">-->
  84. <!-- <el-form-item label="在用" prop="active" :rules="rules.activeType">-->
  85. <!-- <el-select v-model="pageData.active" style="width: 221px;">-->
  86. <!-- <el-option label="是" value="Y"></el-option>-->
  87. <!-- <el-option label="否" value="N"></el-option>-->
  88. <!-- </el-select >-->
  89. <!-- </el-form-item>-->
  90. <!-- <el-form-item label="资产编号" >-->
  91. <!-- <el-input v-model="pageData.assetNo" style="width: 221px;" ></el-input>-->
  92. <!-- </el-form-item>-->
  93. <!-- </el-form>-->
  94. <!-- <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">-->
  95. <!-- <el-form-item label="备注" >-->
  96. <!-- <el-input-->
  97. <!-- type="textarea"-->
  98. <!-- v-model="pageData.assetRemark"-->
  99. <!-- :rows="3"-->
  100. <!-- resize='none'-->
  101. <!-- maxlength="300"-->
  102. <!-- show-word-limit-->
  103. <!-- style="width: 456px;height: 60px">-->
  104. <!-- </el-input>-->
  105. <!-- </el-form-item>-->
  106. <!-- </el-form>-->
  107. <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  108. <el-form-item label="BU" prop="bu" :rules="rules.bu">
  109. <el-select v-model="pageData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 455px">
  110. <el-option
  111. v-for = "i in userBuList"
  112. :key = "i.buNo"
  113. :label = "i.buNo"
  114. :value = "i.buNo">
  115. <span style="float: left;width: 100px">{{ i.sitename }}</span>
  116. <span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
  117. {{ i.buDesc }}
  118. </span>
  119. </el-option>
  120. </el-select>
  121. </el-form-item>
  122. <el-form-item label="设备编码" prop="objectID" :rules="rules.objectIdType">
  123. <el-input v-model="pageData.objectID" style="width: 120px"></el-input>
  124. </el-form-item>
  125. <el-form-item label="设备名称" prop="objectDesc" :rules="rules.objectDesc" style="margin-left: -10px">
  126. <el-input v-model="pageData.objectDesc" style="width: 330px"></el-input>
  127. </el-form-item>
  128. </el-form>
  129. <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  130. <el-form-item prop="locationID" :rules="rules.locationType">
  131. <span slot="label" @click="getBaseList(26)"><a herf="#">区域</a></span>
  132. <el-input v-model="pageData.locationID" style="width: 120px;"></el-input>
  133. <el-input v-model="pageData.locationName" disabled style="width: 330px"></el-input>
  134. </el-form-item>
  135. <el-form-item prop="familyID" :rules="rules.familyType">
  136. <span slot="label" @click="getBaseList(27)"><a herf="#">分类</a></span>
  137. <el-input v-model="pageData.familyID" style="width: 120px;" ></el-input>
  138. <el-input v-model="pageData.familyDesc" disabled style="width: 330px"></el-input>
  139. </el-form-item>
  140. </el-form>
  141. <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  142. <el-form-item prop="groupID" :rules="rules.groupType">
  143. <span slot="label" @click="getBaseList(28)"><a herf="#">分组</a></span>
  144. <el-input v-model="pageData.groupID" style="width: 120px;"></el-input>
  145. <el-input v-model="pageData.groupDesc" disabled style="width: 330px"></el-input>
  146. </el-form-item>
  147. <el-form-item>
  148. <span slot="label" @click="getBaseList(29)"><a herf="#">供应商</a></span>
  149. <el-input v-model="pageData.supplierID" style="width: 120px;"></el-input>
  150. <el-input v-model="pageData.supplierName" disabled style="width: 330px"></el-input>
  151. </el-form-item>
  152. </el-form>
  153. <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">
  154. <el-form-item>
  155. <span slot="label" @click="getBaseList(30)"><a herf="#">制造商编码</a></span>
  156. <el-input v-model="pageData.manufacturerID" style="width: 120px;"></el-input>
  157. <el-input v-model="pageData.manufacturerName" disabled style="width: 330px"></el-input>
  158. </el-form-item>
  159. <el-form-item>
  160. <span slot="label" style="" @click="getBaseList(503)"><a herf="#">机台编码</a></span>
  161. <el-input v-model="pageData.resourceID" style="width: 120px;" ></el-input>
  162. <el-input v-model="pageData.resourceDesc" disabled style="width: 330px"></el-input>
  163. </el-form-item>
  164. </el-form>
  165. <el-form :inline="true" label-position="top" :model="pageData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  166. <el-form-item prop="deptID" :rules="rules.deptType">
  167. <span slot="label" @click="getBaseList(204)"><a herf="#">所属部门编码</a></span>
  168. <el-input v-model="pageData.deptID" style="width: 120px"></el-input>
  169. <el-input v-model="pageData.deptName" disabled style="width: 330px"></el-input>
  170. </el-form-item>
  171. <el-form-item label="在用" prop="active" :rules="rules.activeType">
  172. <el-select v-model="pageData.active" style="width: 120px;">
  173. <el-option label="是" value="Y"></el-option>
  174. <el-option label="否" value="N"></el-option>
  175. </el-select >
  176. </el-form-item>
  177. <el-form-item label="购入日期:" style="margin-left: -10px">
  178. <el-date-picker v-model="pageData.purchessDate" value-format="yyyy-MM-dd HH:mm:ss" style="width: 330px;"></el-date-picker>
  179. </el-form-item>
  180. </el-form>
  181. <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">
  182. <el-form-item label="序列号:">
  183. <el-input v-model="pageData.seqNo" style="width: 455px;"></el-input>
  184. </el-form-item>
  185. <el-form-item label="资产编号" >
  186. <el-input v-model="pageData.assetNo" style="width: 454px;" ></el-input>
  187. </el-form-item>
  188. </el-form>
  189. <el-form :inline="true" label-position="top" :model="pageData" style="margin-left: 7px;margin-top: -5px;">
  190. <el-form-item label="备注" >
  191. <el-input
  192. type="textarea"
  193. v-model="pageData.assetRemark"
  194. :rows="3"
  195. resize='none'
  196. show-word-limit
  197. style="width: 921px;height: 60px">
  198. </el-input>
  199. </el-form-item>
  200. </el-form>
  201. <el-footer style="height:31px;margin-top: 50px;text-align:center">
  202. <el-button type="primary" @click="saveEamObject()">保存</el-button>
  203. <el-button type="primary" @click="closeDialog">关闭</el-button>
  204. </el-footer>
  205. </el-dialog>
  206. <!--列表的组件-->
  207. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  208. </div>
  209. </template>
  210. <script>
  211. import {
  212. insertEamObject,
  213. updateEamObject,
  214. } from '@/api/eam/com_eam_object_add_update.js'
  215. import {getSiteAndBuByUserName} from "@/api/eam/eam.js"
  216. /* 引入组件 */
  217. import Chooselist from '@/views/modules/common/Chooselist_eam';/* 列表组件 */
  218. var functionId = 'C10000001';
  219. export default {
  220. data() {
  221. return {
  222. titleCon: '设备清单维护',
  223. visible: false,
  224. userId: this.$store.state.user.name,
  225. pageData: {
  226. site: '',
  227. bu: '',
  228. buNo: '',
  229. username: this.$store.state.user.name,
  230. objectID: '',
  231. objectDesc: '',
  232. locationID: '',
  233. locationName: '',
  234. familyID: '',
  235. familyDesc: '',
  236. groupID: '',
  237. groupDesc: '',
  238. supplierID: '',
  239. supplierName: '',
  240. manufacturerID: '',
  241. manufacturerName: '',
  242. resourceID: '',
  243. resourceDesc: '',
  244. seqNo: '',
  245. purchessDate: '',
  246. active: 'Y',
  247. addFlag: 'Y',
  248. checkFlag: 'Y',
  249. updateBy:'',
  250. deptID: '',
  251. deptName: '',
  252. assetNo: '',
  253. assetRemark: '',
  254. },
  255. dataListLoading: false,
  256. rules:{
  257. objectIdType:[
  258. {
  259. required: true,
  260. message: ' ',
  261. trigger: 'change'
  262. }
  263. ],
  264. objectDesc: [
  265. {
  266. required: true,
  267. message: ' ',
  268. trigger: 'change'
  269. }
  270. ],
  271. locationType:[
  272. {
  273. required: true,
  274. message: ' ',
  275. trigger: 'change'
  276. }
  277. ],
  278. familyType:[
  279. {
  280. required: true,
  281. message: ' ',
  282. trigger: 'change'
  283. }
  284. ],
  285. groupType:[
  286. {
  287. required: true,
  288. message: ' ',
  289. trigger: 'change'
  290. }
  291. ],
  292. deptType:[
  293. {
  294. required: true,
  295. message: ' ',
  296. trigger: 'change'
  297. }
  298. ],
  299. activeType:[
  300. {
  301. required: true,
  302. message: ' ',
  303. trigger: 'change'
  304. }
  305. ],
  306. bu: [
  307. {
  308. required: true,
  309. message: ' ',
  310. trigger: 'change'
  311. }
  312. ]
  313. },
  314. userBuList: [],
  315. modalDisableFlag: false,
  316. }
  317. },
  318. methods: {
  319. // 获取用户的bu
  320. getSiteAndBuByUserName () {
  321. let tempData = {
  322. username: this.$store.state.user.name,
  323. }
  324. getSiteAndBuByUserName(tempData).then(({data}) => {
  325. if (data.code === 0) {
  326. this.userBuList = data.rows
  327. }
  328. })
  329. },
  330. // 初始化组件的参数
  331. init (currentRow) {
  332. //初始化参数
  333. this.pageData = JSON.parse(JSON.stringify(currentRow))
  334. //打开页面
  335. this.visible = true
  336. //判断是否是新增
  337. if (this.pageData.addFlag === 'Y') {
  338. this.modalDisableFlag = false
  339. this.pageData.bu = this.userBuList[0].buNo
  340. } else {
  341. this.pageData.bu = this.pageData.site + '_' + this.pageData.buNo
  342. this.modalDisableFlag = true
  343. }
  344. //重置人员信息
  345. this.pageData.username = this.userId
  346. },
  347. // 保存标签自定义的信息
  348. saveEamObject () {
  349. if (this.pageData.bu === '' || this.pageData.bu == null) {
  350. this.$message.warning('请选择BU!')
  351. return
  352. }
  353. if (this.pageData.active == null || this.pageData.active === '') {
  354. this.$message.warning("请选择是否在用!");
  355. return false
  356. }
  357. if (this.pageData.objectID == null || this.pageData.objectID === '') {
  358. this.$message.warning("设备编码不能为空!");
  359. return false
  360. }
  361. if (this.pageData.objectDesc == null || this.pageData.objectDesc === '') {
  362. this.$message.warning("设备名称不能为空!");
  363. return false
  364. }
  365. if (this.pageData.locationID == null || this.pageData.locationID === '') {
  366. this.$message.warning("区域不能为空!");
  367. return false
  368. }
  369. if (this.pageData.groupID == null || this.pageData.groupID === '') {
  370. this.$message.warning("分组不能为空!");
  371. return false
  372. }
  373. if (this.pageData.familyID == null || this.pageData.familyID === '') {
  374. this.$message.warning("分类不能为空!");
  375. return false
  376. }
  377. if (this.pageData.deptID == null || this.pageData.deptID === '') {
  378. this.$message.warning("所属部门不能为空!");
  379. return false
  380. }
  381. // 判断是否是新增标签自定义
  382. if (this.pageData.addFlag === 'Y') {
  383. this.insertEamObjectData()
  384. } else {
  385. this.updateEamObjectData()
  386. }
  387. },
  388. // 新增
  389. insertEamObjectData () {
  390. // if (this.pageData.site == '软标/RFID') {
  391. // this.pageData.site = '2'
  392. // }
  393. // if (this.pageData.site == '硬标') {
  394. // this.pageData.site = '3'
  395. // }
  396. // if (this.pageData.site == '通用设备') {
  397. // this.pageData.site = '4'
  398. // }
  399. insertEamObject(this.pageData).then(({data}) => {
  400. if (data.code === 200) {
  401. this.$message.success(data.msg)
  402. setTimeout(this.closeDialog(), 2000)
  403. } else {
  404. this.$message.error(data.msg)
  405. }
  406. })
  407. },
  408. // 修改
  409. updateEamObjectData () {
  410. // if (this.pageData.site == '软标/RFID'){
  411. // this.pageData.site = '2'
  412. // }
  413. // if (this.pageData.site == '硬标'){
  414. // this.pageData.site = '3'
  415. // }
  416. // if (this.pageData.site == '通用设备'){
  417. // this.pageData.site = '4'
  418. // }
  419. updateEamObject(this.pageData).then(({data}) => {
  420. if (data.code === 200) {
  421. this.$message.success(data.msg)
  422. setTimeout(this.closeDialog(), 2000);
  423. }else{
  424. this.$message.error(data.msg);
  425. }
  426. })
  427. },
  428. // 关闭modal
  429. closeDialog () {
  430. // 刷新报工的页面
  431. this.$emit('refreshPageTables')
  432. // 关闭当前的页面
  433. this.visible = false
  434. },
  435. // 列表方法的回调
  436. getBaseData (val) {
  437. if (this.tagNo === 26) {
  438. //设置参数
  439. this.pageData.locationID = val.LocationID;
  440. this.$set(this.pageData,'locationName',val.LocationName)
  441. } else if (this.tagNo === 27) {
  442. //设置参数
  443. this.pageData.familyID = val.FamilyID;
  444. this.$set(this.pageData,'familyDesc',val.FamilyDesc)
  445. } else if (this.tagNo === 28) {
  446. //设置参数
  447. this.pageData.groupID = val.GroupID;
  448. this.$set(this.pageData,'groupDesc',val.GroupDesc)
  449. } else if (this.tagNo === 29) {
  450. //设置参数
  451. this.pageData.supplierID = val.SupplierID;
  452. this.$set(this.pageData,'supplierName',val.SupplierName)
  453. } else if (this.tagNo === 30) {
  454. //设置参数
  455. this.pageData.manufacturerID = val.ManufacturerID;
  456. this.$set(this.pageData,'manufacturerName',val.ManufacturerName)
  457. } else if (this.tagNo === 503) {
  458. //设置参数
  459. this.pageData.resourceID = val.resource_id
  460. this.$set(this.pageData,'resourceDesc',val.resource_desc)
  461. } else if (this.tagNo === 204) {
  462. //设置参数
  463. this.pageData.deptID = val.department_id
  464. this.$set(this.pageData,'deptName',val.department_name)
  465. }
  466. },
  467. // 获取基础数据列表
  468. getBaseList (val) {
  469. this.tagNo = val
  470. this.$nextTick(() => {
  471. let strVal = ''
  472. if (val === 26) {
  473. strVal = this.pageData.locationID
  474. }else if (val === 27) {
  475. strVal = this.pageData.familyID
  476. }else if (val === 28) {
  477. strVal = this.pageData.groupID
  478. }else if (val === 29) {
  479. strVal = this.pageData.supplierID
  480. }else if (val === 30) {
  481. strVal = this.pageData.manufacturerID
  482. }else if (val === 503) {
  483. strVal = this.pageData.resourceID
  484. }else if (val === 204) {
  485. strVal = this.pageData.deptID
  486. }
  487. this.$refs.baseList.init(val, strVal)
  488. })
  489. },
  490. },
  491. components: {
  492. Chooselist, /* 选择的组件 */
  493. },
  494. watch: {
  495. pageData: {
  496. deep: true,
  497. handler: function (newV, oldV) {
  498. this.pageData.objectID = this.pageData.objectID.toUpperCase();
  499. this.pageData.locationID = this.pageData.locationID.toUpperCase();
  500. this.pageData.familyID = this.pageData.familyID.toUpperCase();
  501. this.pageData.groupID = this.pageData.groupID.toUpperCase();
  502. this.pageData.supplierID = this.pageData.supplierID.toUpperCase();
  503. this.pageData.manufacturerID = this.pageData.manufacturerID.toUpperCase();
  504. }
  505. },
  506. },
  507. created() {
  508. // 获取用户的 site 和 bu
  509. this.getSiteAndBuByUserName()
  510. }
  511. }
  512. </script>
  513. <style scoped lang="scss">
  514. </style>