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.

598 lines
18 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  4. <el-form-item :label=buttons.site>
  5. <el-input v-model="searchData.site" style="width: 120px"></el-input>
  6. </el-form-item>
  7. <el-form-item :label=buttons.partNo>
  8. <el-input v-model="searchData.partNo" style="width: 120px" oninput="this.value = this.value.toUpperCase()"></el-input>
  9. </el-form-item>
  10. <el-form-item :label=buttons.partDescription>
  11. <el-input v-model="searchData.partDescription" style="width: 120px"></el-input>
  12. </el-form-item>
  13. <el-form-item :label=buttons.spec>
  14. <el-input v-model="searchData.spec" style="width: 120px"></el-input>
  15. </el-form-item>
  16. <el-form-item :label=buttons.newDate>
  17. <el-date-picker
  18. style="width: 130px"
  19. v-model="searchData.date1"
  20. value-format="yyyy-MM-dd"
  21. placeholder="选择日期">
  22. </el-date-picker>
  23. </el-form-item>
  24. <el-form-item :label=buttons.to>
  25. <el-date-picker
  26. style="width: 130px"
  27. v-model="searchData.date2"
  28. value-format="yyyy-MM-dd"
  29. placeholder="选择日期">
  30. </el-date-picker>
  31. </el-form-item>
  32. <el-form-item :label=buttons.active>
  33. <el-select filterable v-model="searchData.active" style="width: 120px">
  34. <el-option :label=buttons.all value=""></el-option>
  35. <el-option :label=buttons.yes value="Y"></el-option>
  36. <el-option :label=buttons.no value="N"></el-option>
  37. </el-select>
  38. <el-button @click="getData()" type="primary" style="margin-left: 2px;">{{ buttons.search }}</el-button>
  39. <el-button @click="userSetting" type="primary">{{ buttons.settingTable }}</el-button>
  40. <el-button v-if="isAuth('sys:setting')" @click="saveColumnList()" type="primary">{{ buttons.defaultTable }}</el-button>
  41. <download-excel
  42. :fields="fields()"
  43. :data="exportData"
  44. type="xls"
  45. :name="exportName"
  46. :header="exportHeader"
  47. :footer="exportFooter"
  48. :fetch="createExportData"
  49. :before-generate="startDownload"
  50. :before-finish="finishDownload"
  51. worksheet="导出信息"
  52. class="el-button el-button--primary el-button--medium">
  53. {{ buttons.download }}
  54. </download-excel>
  55. </el-form-item>
  56. </el-form>
  57. <el-table
  58. :height="height"
  59. :data="dataList"
  60. border
  61. v-loading="dataListLoading"
  62. style="width: 100%;">
  63. <el-table-column
  64. v-for="(item,index) in columnList" :key="index"
  65. :sortable="item.columnSortable"
  66. :prop="item.columnProp"
  67. :header-align="item.headerAlign"
  68. :show-overflow-tooltip="item.showOverflowTooltip"
  69. :align="item.align"
  70. :fixed="item.fixed"
  71. :min-width="item.columnWidth"
  72. :label="item.columnLabel">
  73. <template slot-scope="scope">
  74. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  75. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  76. style="width: 100px; height: 80px"/></span>
  77. </template>
  78. </el-table-column>
  79. </el-table>
  80. <!-- 动态列 -->
  81. <column v-if="visible" ref="column" @refreshData="getTableUserColumn"></column>
  82. </div>
  83. </template>
  84. <script>
  85. import column from "../common/column";
  86. import {
  87. searchSysLanguagePackList,
  88. searchSysLanguageParam,
  89. searchFunctionButtonList,
  90. saveButtonList,
  91. searchSysLanguage,
  92. searchLanguageListByLanguageCode,
  93. saveSysLanguageOne,
  94. searchPageLanguageData,
  95. removerLanguage
  96. } from "@/api/sysLanguage.js"
  97. import {
  98. saveTableDefaultList,
  99. saveTableUser,
  100. getTableDefaultListLanguage,
  101. getTableUserListLanguage,
  102. removerDefault,
  103. removerUser
  104. } from "@/api/table.js"
  105. import {
  106. searchPartNoData,
  107. } from "@/api/base/site.js"
  108. export default {
  109. name: "searchPartNo",
  110. components: {column},
  111. data() {
  112. return {
  113. // 多语言 start
  114. buttonList: [
  115. {
  116. functionId: "6004",
  117. languageValue: '设置默认配置',
  118. objectId: 'defaultTable',
  119. objectType: "button",
  120. tableId: "6004Table"
  121. },
  122. {
  123. functionId: "6004",
  124. languageValue: '查询',
  125. objectId: 'search',
  126. objectType: "button",
  127. tableId: "6004Table"
  128. },
  129. {
  130. functionId: "6004",
  131. languageValue: '导出',
  132. objectId: 'download',
  133. objectType: "button",
  134. tableId: "6004Table"
  135. },
  136. {
  137. functionId: "6004",
  138. languageValue: '设置列表',
  139. objectId: 'settingTable',
  140. objectType: "button",
  141. tableId: "6004Table"
  142. },
  143. {
  144. functionId: "6004",
  145. languageValue: '工厂编码',
  146. objectId: 'site',
  147. objectType: "button",
  148. tableId: "6004Table"
  149. },
  150. {
  151. functionId: "6004",
  152. languageValue: '全部',
  153. objectId: 'all',
  154. objectType: "button",
  155. tableId: "6004Table"
  156. },
  157. {
  158. functionId: "6004",
  159. languageValue: '是',
  160. objectId: 'yes',
  161. objectType: "button",
  162. tableId: "6004Table"
  163. },
  164. {
  165. functionId: "6004",
  166. languageValue: '否',
  167. objectId: 'no',
  168. objectType: "button",
  169. tableId: "6004Table"
  170. },
  171. {
  172. functionId: "6004",
  173. languageValue: '在用',
  174. objectId: 'active',
  175. objectType: "button",
  176. tableId: "6004Table"
  177. },
  178. {
  179. functionId: "6004",
  180. languageValue: '物料编码',
  181. objectId: 'partNo',
  182. objectType: "button",
  183. tableId: "6004Table"
  184. },
  185. {
  186. functionId: "6004",
  187. languageValue: '物料名称',
  188. objectId: 'partDescription',
  189. objectType: "button",
  190. tableId: "6004Table"
  191. },
  192. {
  193. functionId: "6004",
  194. languageValue: '规则型号',
  195. objectId: 'spec',
  196. objectType: "button",
  197. tableId: "6004Table"
  198. },
  199. {
  200. functionId: "6004",
  201. languageValue: '新增日期',
  202. objectId: 'newDate',
  203. objectType: "button",
  204. tableId: "6004Table"
  205. },
  206. {
  207. functionId: "6004",
  208. languageValue: '至',
  209. objectId: 'to',
  210. objectType: "button",
  211. tableId: "6004Table"
  212. }
  213. ],
  214. showDefault:false,
  215. // 语言词典集合
  216. sysLanguageParams: [],
  217. dataListLoading: false,
  218. // 用户table 配置集合
  219. userColumnList: [],
  220. queryTableUser: {
  221. userId: this.$store.state.user.name,
  222. functionId: 6004,
  223. tableId: "6004Table",
  224. status: true,
  225. languageCode: this.$i18n.locale
  226. },
  227. buttons:{
  228. defaultTable:'设置默认配置',
  229. search:'查询',
  230. download:'导出',
  231. settingTable: '设置列表',
  232. site:'工厂编码',
  233. active:'在用',
  234. all:'全部',
  235. yes:'是',
  236. no:'否',
  237. partNo:'物料编码',
  238. partDescription:'物料名称',
  239. spec:'规则型号',
  240. newDate:'新增日期',
  241. to:'至',
  242. },
  243. // 默认table 查询参数
  244. queryTable: {
  245. functionId: 6004,
  246. tableId: "6004Table",
  247. languageCode: this.$i18n.locale
  248. },
  249. languageList: [],
  250. queryLanguage: {},
  251. visible:false,
  252. // 多语言 end
  253. // 导出 start
  254. exportData: [],
  255. exportName: "物料编码"+this.dayjs().format('YYYYMMDDHHmmss'),
  256. exportHeader: ["物料编码"],
  257. exportFooter: [],
  258. // 导出 end
  259. height: 200,
  260. modelFlag:false,
  261. modelInputFlag:true,
  262. selectList:[],
  263. searchData: {
  264. site:'',
  265. partNo:'',
  266. partDescription:'',
  267. active:'',
  268. spec:'',
  269. date1:new Date(),
  270. date2:'',
  271. user:this.$store.state.user.name,
  272. },
  273. dataList:[],
  274. columnList: [
  275. {
  276. userId: this.$store.state.user.name,
  277. functionId: 6004,
  278. serialNumber: '6004TablePartNo',
  279. tableId: "6004Table",
  280. tableName: "查询物料编码表",
  281. columnProp: "partNo",
  282. headerAlign: "center",
  283. align: "left",
  284. columnLabel: "物料编码",
  285. columnHidden: false,
  286. columnImage: false,
  287. columnSortable: false,
  288. sortLv: 0,
  289. status: true,
  290. fixed: false,
  291. columnWidth: 120
  292. },
  293. {
  294. userId: this.$store.state.user.name,
  295. functionId: 6004,
  296. serialNumber: '6004TablePartDescription',
  297. tableId: "6004Table",
  298. tableName: "查询物料编码表",
  299. columnProp: "partDescription",
  300. headerAlign: "center",
  301. align: "left",
  302. columnLabel: "物料名称",
  303. columnHidden: false,
  304. columnImage: false,
  305. columnSortable: false,
  306. sortLv: 0,
  307. status: true,
  308. fixed: false,
  309. columnWidth: 250
  310. },
  311. {
  312. userId: this.$store.state.user.name,
  313. functionId: 6004,
  314. serialNumber: '6004TableSpec',
  315. tableId: "6004Table",
  316. tableName: "查询物料编码表",
  317. columnProp: "spec",
  318. headerAlign: "center",
  319. align: "left",
  320. columnLabel: "规格型号",
  321. columnHidden: false,
  322. columnImage: false,
  323. columnSortable: false,
  324. sortLv: 0,
  325. status: true,
  326. fixed: false,
  327. columnWidth: 100
  328. },
  329. {
  330. userId: this.$store.state.user.name,
  331. functionId: 6004,
  332. serialNumber: '6004TableConfigurationTemplateID',
  333. tableId: "6004Table",
  334. tableName: "查询物料编码表",
  335. columnProp: "configurationTemplateID",
  336. headerAlign: "center",
  337. align: "left",
  338. columnLabel: "客户名称",
  339. columnHidden: false,
  340. columnImage: false,
  341. columnSortable: false,
  342. sortLv: 0,
  343. status: true,
  344. fixed: false,
  345. columnWidth: 160
  346. },
  347. {
  348. userId: this.$store.state.user.name,
  349. functionId: 6004,
  350. serialNumber: '6004TableRemark',
  351. tableId: "6004Table",
  352. tableName: "查询物料编码表",
  353. columnProp: "remark",
  354. headerAlign: "center",
  355. align: "left",
  356. columnLabel: "客户产品科号",
  357. columnHidden: false,
  358. columnImage: false,
  359. columnSortable: false,
  360. sortLv: 0,
  361. status: true,
  362. fixed: false,
  363. columnWidth: 250
  364. },
  365. {
  366. userId: this.$store.state.user.name,
  367. functionId: 6004,
  368. serialNumber: '6004TableUmid',
  369. tableId: "6004Table",
  370. tableName: "查询物料编码表",
  371. columnProp: "umid",
  372. headerAlign: "center",
  373. align: "left",
  374. columnLabel: "计量单位",
  375. columnHidden: false,
  376. columnImage: false,
  377. columnSortable: false,
  378. sortLv: 0,
  379. status: true,
  380. fixed: false,
  381. columnWidth: 60
  382. },
  383. {
  384. userId: this.$store.state.user.name,
  385. functionId: 6004,
  386. serialNumber: '6004TableActive',
  387. tableId: "6004Table",
  388. tableName: "查询物料编码表",
  389. columnProp: "active",
  390. headerAlign: "center",
  391. align: "left",
  392. columnLabel: "在用",
  393. columnHidden: false,
  394. columnImage: false,
  395. columnSortable: false,
  396. sortLv: 0,
  397. status: true,
  398. fixed: false,
  399. columnWidth: 40
  400. },
  401. {
  402. userId: this.$store.state.user.name,
  403. functionId: 6004,
  404. serialNumber: '6004TableCreateDate',
  405. tableId: "6004Table",
  406. tableName: "查询物料编码表",
  407. columnProp: "createDate",
  408. headerAlign: "center",
  409. align: "left",
  410. columnLabel: "新增日期",
  411. columnHidden: false,
  412. columnImage: false,
  413. columnSortable: false,
  414. sortLv: 0,
  415. status: true,
  416. fixed: false,
  417. columnWidth: 120
  418. },
  419. {
  420. userId: this.$store.state.user.name,
  421. functionId: 6004,
  422. serialNumber: '6004TableSite',
  423. tableId: "6004Table",
  424. tableName: "查询物料编码表",
  425. columnProp: "site",
  426. headerAlign: "center",
  427. align: "left",
  428. columnLabel: "工厂编号",
  429. columnHidden: false,
  430. columnImage: false,
  431. columnSortable: false,
  432. sortLv: 0,
  433. status: true,
  434. fixed: false,
  435. columnWidth: 60
  436. }
  437. ],
  438. }
  439. },
  440. mounted() {
  441. this.$nextTick(() => {
  442. this.height = window.innerHeight - 150;
  443. })
  444. },
  445. methods: {
  446. //多语言start
  447. // 获取页面多语言
  448. getMsgLanguage() {
  449. this.dataListLoading = true
  450. let queryLang = {
  451. functionId: 6004,
  452. table_id: '6004Table',
  453. languageCode: this.$i18n.locale
  454. }
  455. searchPageLanguageData(queryLang).then((data) => {
  456. if (JSON.stringify(data.data) != '{}') {
  457. this.pageLanguageData = data.data
  458. } else {
  459. }
  460. })
  461. this.dataListLoading = false
  462. },
  463. // 获取button的词典
  464. getFunctionButtonList() {
  465. searchFunctionButtonList(this.queryTable).then(({data}) => {
  466. if (JSON.stringify(data.data) != '{}') {
  467. this.buttons = data.data
  468. } else {
  469. // saveButtonList(this.buttonList).then(({data}) => {
  470. // })
  471. }
  472. })
  473. },
  474. // 获取语言词典
  475. getSysLanguageParamList() {
  476. searchSysLanguageParam(this.queryTable).then(({data}) => {
  477. this.sysLanguageParams = data.rows
  478. })
  479. },
  480. // 打开页面设置
  481. userSetting() {
  482. this.visible = true;
  483. let queryTable = {
  484. userId: this.$store.state.user.name,
  485. functionId: 6004,
  486. tableId: "6004Table",
  487. languageCode: this.$i18n.locale
  488. }
  489. this.$nextTick(() => {
  490. this.$refs.column.init(queryTable);
  491. });
  492. },
  493. // 获取 用户保存的 格式列
  494. getTableUserColumn() {
  495. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  496. if (data.rows.length>0) {
  497. //this.columnList = []
  498. this.columnList = data.rows
  499. } else {
  500. this.getColumnList()
  501. }
  502. })
  503. },
  504. // 保存 默认配置 列
  505. saveColumnList() {
  506. // 删除所有的该页面下保存的数据
  507. if (this.userColumnList) {
  508. //删除 user自定义的数据
  509. removerUser(this.queryTable)
  510. }
  511. // 删除默认配置
  512. removerDefault(this.queryTable)
  513. // 删除语言
  514. removerLanguage(this.queryTable)
  515. // 保存页面 table属性
  516. let sumColumnList = this.columnList;
  517. saveTableDefaultList(sumColumnList).then(({data}) => {
  518. })
  519. // 保存页面 button label title 属性
  520. saveButtonList(this.buttonList).then(({data}) => {
  521. })
  522. this.getFunctionButtonList()
  523. this.getColumnList()
  524. },
  525. // 获取 tableDefault 列
  526. getColumnList() {
  527. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  528. if (data.rows.length>0) {
  529. this.showDefault = false
  530. this.columnList = data.rows
  531. } else {
  532. this.showDefault = true
  533. }
  534. })
  535. },
  536. //多语言 end
  537. getData(){
  538. if((this.searchData.site==null||this.searchData.site=='')&&(this.searchData.partNo==null||this.searchData.partNo=='')&&(this.searchData.partDescription==null||this.searchData.partDescription=='')&&
  539. (this.searchData.spec==null||this.searchData.spec=='')&&(this.searchData.date1==null||this.searchData.date1=='')&&(this.searchData.date2==null||this.searchData.date2=='')){
  540. this.$alert("数据量过大,请至少输入一个查询条件!",'提示',{
  541. confirmButtonText:'确定'
  542. })
  543. return false;
  544. }
  545. searchPartNoData(this.searchData).then(({data}) => {
  546. this.dataList = data.rows
  547. })
  548. },
  549. //导出excel
  550. createExportData() {
  551. return this.dataList;
  552. },
  553. startDownload() {
  554. // this.exportData = this.dataList
  555. },
  556. finishDownload() {
  557. },
  558. fields() {
  559. let json = "{"
  560. this.columnList.forEach((item, index) => {
  561. if (index == this.columnList.length - 1) {
  562. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
  563. } else {
  564. json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
  565. }
  566. })
  567. json += "}"
  568. let s = eval("(" + json + ")")
  569. return s
  570. },
  571. // 导出 end
  572. },
  573. created() {
  574. this.getTableUserColumn()
  575. this.getSysLanguageParamList()
  576. this.getFunctionButtonList()
  577. this.getMsgLanguage()
  578. }
  579. }
  580. </script>
  581. <style >
  582. .el-textarea__inner {
  583. padding: 5px 5px;
  584. }
  585. </style>