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.

849 lines
28 KiB

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