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.

888 lines
29 KiB

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