plm前端
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.

802 lines
26 KiB

3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()">
  4. <el-form-item :label="'属性编码'">
  5. <el-input v-model="searchData.itemNo" style="width: 120px"></el-input>
  6. </el-form-item>
  7. <el-form-item :label="'属性名称'">
  8. <el-input v-model="searchData.itemDesc" style="width: 120px"></el-input>
  9. </el-form-item>
  10. <el-form-item :label="'属性类型'" >
  11. <el-select filterable v-model="searchData.itemType" style="width: 120px">
  12. <el-option label="全部" value=""></el-option>
  13. <el-option label="A" value="A"></el-option>
  14. <el-option label="IP" value="IP"></el-option>
  15. <el-option label="MP" value="MP"></el-option>
  16. <el-option label="BM" value="BM"></el-option>
  17. </el-select>
  18. </el-form-item>
  19. <el-form-item :label="' '">
  20. <el-button type="primary" @click="getDataList()">查询</el-button>
  21. <el-button type="primary" @click="addModal()">新增</el-button>
  22. <download-excel
  23. :fields="fields()"
  24. :data="exportData"
  25. type="xls"
  26. :name="exportName"
  27. :header="exportHeader"
  28. :footer="exportFooter"
  29. :fetch="createExportData"
  30. :before-generate="startDownload"
  31. :before-finish="finishDownload"
  32. worksheet="导出信息"
  33. class="el-button el-button--primary el-button--medium">
  34. {{ "导出" }}
  35. </download-excel>
  36. </el-form-item>
  37. </el-form>
  38. <el-table
  39. :height="height"
  40. :data="dataList"
  41. border
  42. v-loading="dataListLoading"
  43. style="width: 100%;">
  44. <el-table-column
  45. v-for="(item,index) in columnList" :key="index"
  46. :sortable="item.columnSortable"
  47. :prop="item.columnProp"
  48. :header-align="item.headerAlign"
  49. :show-overflow-tooltip="item.showOverflowTooltip"
  50. :align="item.align"
  51. :fixed="item.fixed==''?false:item.fixed"
  52. :min-width="item.columnWidth"
  53. :label="item.columnLabel">
  54. <template slot-scope="scope">
  55. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  56. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  57. </template>
  58. </el-table-column>
  59. <el-table-column
  60. fixed="right"
  61. header-align="center"
  62. align="center"
  63. width="160"
  64. label="操作">
  65. <template slot-scope="scope">
  66. <a type="text" size="small" @click="updateModal(scope.row)">修改</a>
  67. <a type="text" size="small" v-if="scope.row.valueChooseFlag=='Y'" @click="chooseModal(scope.row)">可选值</a>
  68. <a type="text" size="small" @click="deletePropertiesItem(scope.row)">删除</a>
  69. </template>
  70. </el-table-column>
  71. </el-table>
  72. <!-- 分页栏 -->
  73. <el-pagination
  74. @size-change="sizeChangeHandle"
  75. @current-change="currentChangeHandle"
  76. :current-page="pageIndex"
  77. :page-sizes="[20, 50, 100, 200, 500]"
  78. :page-size="pageSize"
  79. :total="totalPage"
  80. layout="total, sizes, prev, pager, next, jumper">
  81. </el-pagination>
  82. <el-dialog title="属性" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px">
  83. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  84. <el-form-item label="属性编码:" prop="itemNo" :rules="rules.itemNoType">
  85. <el-input v-model="modalData.itemNo" :disabled="modalDisableFlag" style="width: 120px"></el-input>
  86. </el-form-item>
  87. <el-form-item label="属性名称:" prop="itemDesc" :rules="rules.itemDescType">
  88. <el-input v-model="modalData.itemDesc" style="width: 120px"></el-input>
  89. </el-form-item>
  90. <el-form-item :label="'值类型'" prop="valueTypeDb" :rules="rules.valueTypeDbType">
  91. <el-select filterable v-model="modalData.valueTypeDb" style="width: 120px">
  92. <el-option label="文本" value="T"></el-option>
  93. <el-option label="数字" value="N"></el-option>
  94. </el-select>
  95. </el-form-item>
  96. </el-form>
  97. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  98. <el-form-item label="参照值:">
  99. <el-input v-model="modalData.defaultValue" style="width: 120px"></el-input>
  100. </el-form-item>
  101. <el-form-item label="最大值:">
  102. <el-input v-model="modalData.maxValue" type="number" style="width: 120px"></el-input>
  103. </el-form-item>
  104. <el-form-item label="最小值:">
  105. <el-input v-model="modalData.minValue" type="number" style="width: 120px"></el-input>
  106. </el-form-item>
  107. </el-form>
  108. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  109. <el-form-item :label="'属性类型'" prop="itemType" :rules="rules.itemType">
  110. <el-select filterable v-model="modalData.itemType" :disabled="modalDisableFlag" style="width: 120px">
  111. <el-option label="A" value="A"></el-option>
  112. <el-option label="IP" value="IP"></el-option>
  113. <el-option label="MP" value="MP"></el-option>
  114. <el-option label="BM" value="BM"></el-option>
  115. </el-select>
  116. </el-form-item>
  117. <el-form-item :label="'是否值可选'" prop="valueChooseFlag" :rules="rules.valueChooseFlagType">
  118. <el-select v-model="modalData.valueChooseFlag" style="width: 80px">
  119. <el-option label="是" value="Y"></el-option>
  120. <el-option label="否" value="N"></el-option>
  121. </el-select>
  122. </el-form-item>
  123. </el-form>
  124. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  125. <el-button type="primary" @click="saveData()">保存</el-button>
  126. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  127. </el-footer>
  128. </el-dialog>
  129. <el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="430px">
  130. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  131. <el-form-item label="属性名称:">
  132. <el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input>
  133. </el-form-item>
  134. <el-form-item :label="'值类型'">
  135. <el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px">
  136. <el-option label="文本" value="T"></el-option>
  137. <el-option label="数字" value="N"></el-option>
  138. </el-select>
  139. </el-form-item>
  140. <el-form-item :label="' '">
  141. <el-button type="primary" @click="addChooseModal()">新增</el-button>
  142. </el-form-item>
  143. </el-form>
  144. <el-table
  145. :height="300"
  146. :data="chooseTableData"
  147. border
  148. style="width: 100%">
  149. <el-table-column
  150. prop="availableValue"
  151. header-align="center"
  152. align="left"
  153. min-width="200"
  154. label="属性值">
  155. </el-table-column>
  156. <el-table-column
  157. prop=""
  158. header-align="center"
  159. align="center"
  160. min-width="100"
  161. label="操作">
  162. <template slot-scope="scope">
  163. <a type="text" size="small" @click="updateChooseModal(scope.row)">修改</a>
  164. <a type="text" size="small" @click="deleteItemAvailable(scope.row)">删除</a>
  165. </template>
  166. </el-table-column>
  167. </el-table>
  168. </el-dialog>
  169. <el-dialog title="可选值维护" :close-on-click-modal="false" v-drag :visible.sync="itemModalFlag" width="215px" >
  170. <el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent>
  171. <el-form-item :label="'可选值:'">
  172. <el-input v-model="itemData.availableValue" :type="itemFlag" style="width: 130px;"></el-input>
  173. </el-form-item>
  174. </el-form>
  175. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  176. <el-button type="primary" @click="saveItemAvailable()">保存</el-button>
  177. <el-button type="primary" @click="itemModalFlag = false">关闭</el-button>
  178. </el-footer>
  179. </el-dialog>
  180. </div>
  181. </template>
  182. <script>
  183. import {
  184. propertiesItemSearch,
  185. propertiesItemSave,
  186. propertiesItemEdit,
  187. propertiesItemDelete,
  188. searchItemAvailable,
  189. saveItemAvailable,
  190. deleteItemAvailable,
  191. } from "@/api/base/properties.js"
  192. export default {
  193. watch: {
  194. searchData: {
  195. deep: true,
  196. handler: function (newV, oldV) {
  197. this.searchData.itemNo = this.searchData.itemNo.toUpperCase()
  198. }
  199. },
  200. itemData: {
  201. deep: true,
  202. handler: function (newV, oldV) {
  203. this.itemData.itemNo = this.itemData.itemNo.toUpperCase()
  204. }
  205. },
  206. modalData: {
  207. deep: true,
  208. handler: function (newV, oldV) {
  209. this.modalData.itemNo = this.modalData.itemNo.toUpperCase()
  210. }
  211. },
  212. chooseModalData: {
  213. deep: true,
  214. handler: function (newV, oldV) {
  215. this.chooseModalData.itemNo = this.chooseModalData.itemNo.toUpperCase()
  216. }
  217. }
  218. },
  219. data () {
  220. return {
  221. // 导出 start
  222. exportData: [],
  223. exportName: "属性" + this.dayjs().format('YYYYMMDDHHmmss'),
  224. exportHeader: ["属性"],
  225. exportFooter: [],
  226. exportList:[],
  227. // 导出 end
  228. searchData: {
  229. site: this.$store.state.user.site,
  230. itemNo: '',
  231. itemDesc: '',
  232. itemType:'',
  233. page: 1,
  234. limit: 10,
  235. },
  236. height: 200,
  237. pageIndex: 1,
  238. pageSize: 50,
  239. totalPage: 0,
  240. dataList: [],
  241. chooseTableData:[],
  242. dataListLoading: false,
  243. dataListSelections: [],
  244. modalFlag:false,
  245. modalDisableFlag:false,
  246. chooseModalFlag:false,
  247. itemModalFlag:false,
  248. itemFlag:'text',
  249. itemData:{
  250. site: this.$store.state.user.site,
  251. itemNo:'',
  252. valueNo:'',
  253. availableValue:'',
  254. itemType:'',
  255. createdBy: this.$store.state.user.name
  256. },
  257. modalData:{
  258. site: this.$store.state.user.site,
  259. flag: '',
  260. itemNo: '',
  261. itemDesc: '',
  262. valueTypeDb: '',
  263. defaultValue: '',
  264. valueChooseFlag: '',
  265. createdBy: this.$store.state.user.name,
  266. maxValue: '',
  267. minValue: '',
  268. itemType: '',
  269. updateBy: this.$store.state.user.name,
  270. },
  271. departmentList:[],
  272. // 展示列集
  273. columnList: [
  274. {
  275. userId: this.$store.state.user.name,
  276. functionId: 100002001,
  277. serialNumber: '100002001TableValueType',
  278. tableId: "100002001Table",
  279. tableName: "属性表",
  280. columnProp: 'itemType',
  281. headerAlign: "center",
  282. align: "center",
  283. columnLabel: '属性类型',
  284. columnHidden: false,
  285. columnImage: false,
  286. columnSortable: false,
  287. sortLv: 0,
  288. status: true,
  289. fixed: '',
  290. },
  291. {
  292. userId: this.$store.state.user.name,
  293. functionId: 100002001,
  294. serialNumber: '100002001TableValueType',
  295. tableId: "100002001Table",
  296. tableName: "属性表",
  297. columnProp: 'itemNo',
  298. headerAlign: "center",
  299. align: "center",
  300. columnLabel: '属性编码',
  301. columnHidden: false,
  302. columnImage: false,
  303. columnSortable: false,
  304. sortLv: 0,
  305. status: true,
  306. fixed: '',
  307. },
  308. {
  309. userId: this.$store.state.user.name,
  310. functionId: 100002001,
  311. serialNumber: '100002001TableValueType',
  312. tableId: "100002001Table",
  313. tableName: "属性表",
  314. columnProp: 'itemDesc',
  315. headerAlign: "center",
  316. align: "center",
  317. columnLabel: '属性名称',
  318. columnHidden: false,
  319. columnImage: false,
  320. columnSortable: false,
  321. sortLv: 0,
  322. status: true,
  323. fixed: '',
  324. },
  325. {
  326. userId: this.$store.state.user.name,
  327. functionId: 100002001,
  328. serialNumber: '100002001TableValueType',
  329. tableId: "100002001Table",
  330. tableName: "属性表",
  331. columnProp: 'valueType',
  332. headerAlign: "center",
  333. align: "center",
  334. columnLabel: '值类型',
  335. columnHidden: false,
  336. columnImage: false,
  337. columnSortable: false,
  338. sortLv: 0,
  339. status: true,
  340. fixed: '',
  341. },
  342. {
  343. userId: this.$store.state.user.name,
  344. functionId: 100002001,
  345. serialNumber: '100002001TableDefaultValue',
  346. tableId: "100002001Table",
  347. tableName: "属性表",
  348. columnProp: 'defaultValue',
  349. headerAlign: "center",
  350. align: "right",
  351. columnLabel: '参照值',
  352. columnHidden: false,
  353. columnImage: false,
  354. columnSortable: false,
  355. sortLv: 0,
  356. status: true,
  357. fixed: '',
  358. },
  359. {
  360. userId: this.$store.state.user.name,
  361. functionId: 100002001,
  362. serialNumber: '100002001TableMaxValue',
  363. tableId: "100002001Table",
  364. tableName: "属性表",
  365. columnProp: 'maxValue',
  366. headerAlign: "center",
  367. align: "right",
  368. columnLabel: '最大值',
  369. columnHidden: false,
  370. columnImage: false,
  371. columnSortable: false,
  372. sortLv: 0,
  373. status: true,
  374. fixed: '',
  375. },
  376. {
  377. userId: this.$store.state.user.name,
  378. functionId: 100002001,
  379. serialNumber: '100002001TableMinValue',
  380. tableId: "100002001Table",
  381. tableName: "属性表",
  382. columnProp: 'minValue',
  383. headerAlign: "center",
  384. align: "right",
  385. columnLabel: '最小值',
  386. columnHidden: false,
  387. columnImage: false,
  388. columnSortable: false,
  389. sortLv: 0,
  390. status: true,
  391. fixed: '',
  392. },
  393. {
  394. userId: this.$store.state.user.name,
  395. functionId: 100002001,
  396. serialNumber: '100002001TableValueChooseFlag',
  397. tableId: "100002001Table",
  398. tableName: "属性表",
  399. columnProp: 'valueChooseFlag',
  400. headerAlign: "center",
  401. align: "center",
  402. columnLabel: '是否值可选',
  403. columnHidden: false,
  404. columnImage: false,
  405. columnSortable: false,
  406. sortLv: 0,
  407. status: true,
  408. fixed: '',
  409. },
  410. {
  411. userId: this.$store.state.user.name,
  412. functionId: 100002001,
  413. serialNumber: '100002001TableValueChooseFlag',
  414. tableId: '100002001Table',
  415. tableName: '属性表',
  416. columnProp: 'createdDate',
  417. headerAlign: 'center',
  418. align: 'center',
  419. columnLabel: '创建时间',
  420. columnHidden: false,
  421. columnImage: false,
  422. columnSortable: false,
  423. sortLv: 0,
  424. status: true,
  425. fixed: '',
  426. },
  427. {
  428. userId: this.$store.state.user.name,
  429. functionId: 100002001,
  430. serialNumber: '100002001TableValueChooseFlag',
  431. tableId: "100002001Table",
  432. tableName: "属性表",
  433. columnProp: 'createdBy',
  434. headerAlign: "center",
  435. align: "center",
  436. columnLabel: '创建人',
  437. columnHidden: false,
  438. columnImage: false,
  439. columnSortable: false,
  440. sortLv: 0,
  441. status: true,
  442. fixed: '',
  443. },
  444. {
  445. userId: this.$store.state.user.name,
  446. functionId: 100002001,
  447. serialNumber: '100002001TableValueChooseFlag',
  448. tableId: "100002001Table",
  449. tableName: "属性表",
  450. columnProp: 'updateDate',
  451. headerAlign: "center",
  452. align: "center",
  453. columnLabel: '更新时间',
  454. columnHidden: false,
  455. columnImage: false,
  456. columnSortable: false,
  457. sortLv: 0,
  458. status: true,
  459. fixed: '',
  460. },
  461. {
  462. userId: this.$store.state.user.name,
  463. functionId: 100002001,
  464. serialNumber: '100002001TableValueChooseFlag',
  465. tableId: "100002001Table",
  466. tableName: "属性表",
  467. columnProp: 'updateBy',
  468. headerAlign: "center",
  469. align: "center",
  470. columnLabel: '更新人',
  471. columnHidden: false,
  472. columnImage: false,
  473. columnSortable: false,
  474. sortLv: 0,
  475. status: true,
  476. fixed: '',
  477. },
  478. ],
  479. levelList:[],
  480. chooseModalData:{
  481. site: this.$store.state.user.site,
  482. itemNo: '',
  483. itemDesc: '',
  484. itemType:'',
  485. valueTypeDb:'',
  486. },
  487. rules:{
  488. itemNoType:[
  489. {
  490. required: true,
  491. message: ' ',
  492. trigger: 'change'
  493. }
  494. ],
  495. itemType:[
  496. {
  497. required: true,
  498. message: ' ',
  499. trigger: 'change'
  500. }
  501. ],
  502. itemDescType:[
  503. {
  504. required: true,
  505. message: ' ',
  506. trigger: 'change'
  507. }
  508. ],
  509. valueTypeDbType:[
  510. {
  511. required: true,
  512. message: ' ',
  513. trigger: 'change'
  514. }
  515. ],
  516. valueChooseFlagType:[
  517. {
  518. required: true,
  519. message: ' ',
  520. trigger: 'change'
  521. }
  522. ],
  523. }
  524. }
  525. },
  526. mounted () {
  527. this.$nextTick(() => {
  528. this.height = window.innerHeight - 180
  529. })
  530. },
  531. created () {
  532. this.getDataList()
  533. },
  534. methods: {
  535. // 每页数
  536. sizeChangeHandle (val) {
  537. this.pageSize = val
  538. this.pageIndex = 1
  539. this.getDataList()
  540. },
  541. // 当前页
  542. currentChangeHandle (val) {
  543. this.pageIndex = val
  544. this.getDataList()
  545. },
  546. //导出excel
  547. async createExportData() {
  548. this.searchData.limit = -1
  549. this.searchData.page = 1
  550. await propertiesItemSearch(this.searchData).then(({data}) => {
  551. this.exportList= data.rows;
  552. })
  553. return this.exportList;
  554. },
  555. startDownload() {
  556. },
  557. finishDownload() {
  558. },
  559. fields() {
  560. let json = "{"
  561. this.columnList.forEach((item, index) => {
  562. if (index == this.columnList.length - 1) {
  563. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  564. } else {
  565. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  566. }
  567. })
  568. json += "}"
  569. let s = eval("(" + json + ")")
  570. return s
  571. },
  572. // 导出 end
  573. // 获取数据列表
  574. getDataList () {
  575. this.searchData.limit = this.pageSize
  576. this.searchData.page = this.pageIndex
  577. propertiesItemSearch(this.searchData).then(({data}) => {
  578. if (data.code === 0) {
  579. this.dataList = data.page.list
  580. this.pageIndex = data.page.currPage
  581. this.pageSize = data.page.pageSize
  582. this.totalPage = data.page.totalCount
  583. }
  584. this.dataListLoading = false
  585. })
  586. },
  587. addModal(){
  588. this.modalData = {
  589. site: this.$store.state.user.site,
  590. flag:'1',
  591. itemNo:'',
  592. itemDesc:'',
  593. valueTypeDb:'T',
  594. defaultValue:'',
  595. valueChooseFlag:'N',
  596. createdBy:this.$store.state.user.name,
  597. maxValue:'',
  598. minValue:'',
  599. itemType:this.searchData.itemType!=''?JSON.parse(JSON.stringify(this.searchData.itemType)):'A',
  600. updateBy: this.$store.state.user.name,
  601. };
  602. this.modalDisableFlag = false;
  603. this.modalFlag = true;
  604. },
  605. chooseModal(row){
  606. this.chooseModalData.itemNo=row.itemNo;
  607. this.chooseModalData.itemDesc=row.itemDesc;
  608. this.chooseModalData.valueTypeDb=row.valueTypeDb;
  609. this.chooseModalData.itemType=row.itemType;
  610. searchItemAvailable(this.chooseModalData).then(({data}) => {
  611. this.chooseTableData = data.rows
  612. })
  613. this.chooseModalFlag=true;
  614. },
  615. updateModal(row){
  616. this.modalData = {
  617. flag: '2',
  618. site: this.$store.state.user.site,
  619. itemNo: row.itemNo,
  620. itemDesc: row.itemDesc,
  621. valueTypeDb: row.valueTypeDb,
  622. defaultValue: row.defaultValue,
  623. valueChooseFlag: row.valueChooseFlag,
  624. createdBy: this.$store.state.user.name,
  625. maxValue: row.maxValue,
  626. minValue: row.minValue,
  627. itemType: row.itemType,
  628. updateBy: this.$store.state.user.name,
  629. };
  630. this.modalDisableFlag = true;
  631. this.modalFlag = true;
  632. },
  633. // 删除
  634. deletePropertiesItem (row) {
  635. this.$confirm(`是否删除这个属性?`, '提示', {
  636. confirmButtonText: '确定',
  637. cancelButtonText: '取消',
  638. type: 'warning'
  639. }).then(() => {
  640. propertiesItemDelete(row).then(({data}) => {
  641. if (data && data.code === '0') {
  642. this.getDataList()
  643. this.$message({
  644. message: '操作成功',
  645. type: 'success',
  646. duration: 1500,
  647. onClose: () => {
  648. }
  649. })
  650. } else {
  651. this.$alert(data.msg, '错误', {
  652. confirmButtonText: '确定'
  653. })
  654. }
  655. })
  656. }).catch(() => {
  657. })
  658. },
  659. saveData(){
  660. if (this.modalData.itemNo === '' || this.modalData.itemNo == null) {
  661. this.$alert('请输入属性编码!', '错误', {
  662. confirmButtonText: '确定'
  663. })
  664. return false
  665. }
  666. if (this.modalData.itemDesc === '' || this.modalData.itemDesc == null) {
  667. this.$alert('请输入属性名称!', '错误', {
  668. confirmButtonText: '确定'
  669. })
  670. return false
  671. }
  672. if(this.modalData.flag === '1'){
  673. propertiesItemSave(this.modalData).then(({data}) => {
  674. if (data && data.code === '0') {
  675. this.getDataList()
  676. this.modalFlag = false
  677. this.$message({
  678. message: '操作成功',
  679. type: 'success',
  680. duration: 1500,
  681. onClose: () => {
  682. }
  683. })
  684. } else {
  685. this.$alert(data.msg, '错误', {
  686. confirmButtonText: '确定'
  687. })
  688. }
  689. })
  690. }else {
  691. propertiesItemEdit(this.modalData).then(({data}) => {
  692. if (data && data.code === '0') {
  693. this.getDataList()
  694. this.modalFlag = false
  695. this.$message({
  696. message: '操作成功',
  697. type: 'success',
  698. duration: 1500,
  699. onClose: () => {
  700. }
  701. })
  702. } else {
  703. this.$alert(data.msg, '错误', {
  704. confirmButtonText: '确定'
  705. })
  706. }
  707. })
  708. }
  709. },
  710. addChooseModal(){
  711. this.itemFlag = this.chooseModalData.valueTypeDb === 'T'?'text':'number';
  712. this.itemData = {
  713. site: this.$store.state.user.site,
  714. itemNo:this.chooseModalData.itemNo,
  715. valueNo:0,
  716. availableValue:'',
  717. itemType:this.chooseModalData.itemType,
  718. createdBy: this.$store.state.user.name
  719. }
  720. this.itemModalFlag = true;
  721. },
  722. updateChooseModal(row){
  723. this.itemFlag= this.chooseModalData.valueTypeDb === 'T'?'text':'number';
  724. this.itemData={
  725. site: this.$store.state.user.site,
  726. itemNo:this.chooseModalData.itemNo,
  727. valueNo:row.valueNo,
  728. availableValue:row.availableValue,
  729. itemType:this.chooseModalData.itemType,
  730. createdBy: row.createdBy
  731. }
  732. this.itemModalFlag=true;
  733. },
  734. saveItemAvailable(){
  735. if(this.itemData.availableValue==''||this.itemData.availableValue==null){
  736. this.$alert("请输入可选值!",'错误', {
  737. confirmButtonText: '确定'
  738. })
  739. return false;
  740. }
  741. saveItemAvailable(this.itemData).then(({data}) => {
  742. if (data && data.code === 0) {
  743. searchItemAvailable(this.chooseModalData).then(({data}) => {
  744. this.chooseTableData = data.rows
  745. })
  746. this.itemModalFlag=false
  747. this.$message({
  748. message: '操作成功',
  749. type: 'success',
  750. duration: 1500,
  751. onClose: () => {
  752. }
  753. })
  754. } else {
  755. this.$alert(data.msg, '错误', {
  756. confirmButtonText: '确定'
  757. })
  758. }
  759. })
  760. },
  761. deleteItemAvailable(row){
  762. this.$confirm(`是否删除这个可选值?`, '提示', {
  763. confirmButtonText: '确定',
  764. cancelButtonText: '取消',
  765. type: 'warning'
  766. }).then(() => {
  767. deleteItemAvailable(row).then(({data}) => {
  768. if (data && data.code === 0) {
  769. searchItemAvailable(this.chooseModalData).then(({data}) => {
  770. this.chooseTableData = data.rows
  771. })
  772. this.$message({
  773. message: '操作成功',
  774. type: 'success',
  775. duration: 1500,
  776. onClose: () => {
  777. }
  778. })
  779. } else {
  780. this.$alert(data.msg, '错误', {
  781. confirmButtonText: '确定'
  782. })
  783. }
  784. })
  785. }).catch(() => {
  786. })
  787. },
  788. }
  789. }
  790. </script>