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.

520 lines
17 KiB

  1. <template>
  2. <div class="customer-css">
  3. <el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" width="932px" style="height: 480px;" class="customer-dialog">
  4. <el-form :inline="true" label-position="top" label-width="80px">
  5. <!-- 按钮区域 -->
  6. <el-row>
  7. <el-col :span="24">
  8. <el-form-item class="customer-button">
  9. <span>{{labels.labelName}}</span>
  10. <el-input v-model="pageData.labelName" disabled style="width: 150px;" ></el-input>
  11. </el-form-item>
  12. <el-form-item class="customer-button">
  13. <el-button @click="addLabelParameterModal()" type="primary" style="margin-left: 10px; margin-bottom: 5px;">
  14. {{buttons.addButton}}</el-button>
  15. </el-form-item>
  16. <el-form-item class="customer-button">
  17. <el-button @click="updateLabelParameterModal()" type="primary" style="margin-left: 10px; margin-bottom: 5px;">
  18. {{buttons.editButton}}</el-button>
  19. </el-form-item>
  20. <el-form-item class="customer-button">
  21. <el-button @click="deleteLabelContentConfirm()" type="primary" style="margin-left: 10px; margin-bottom: 5px;">
  22. {{buttons.deleteButton}}</el-button>
  23. </el-form-item>
  24. <el-form-item class="customer-button">
  25. <el-button @click="copyLabelContentMethod()" type="primary" style="margin-left: 10px; margin-bottom: 5px;">
  26. {{buttons.copyButton}}</el-button>
  27. </el-form-item>
  28. <el-form-item class="customer-button">
  29. <el-button @click="copyLabelContentWithOtherMethod()" type="primary" style="margin-left: 10px; margin-bottom: 5px;">
  30. {{buttons.copyButtonWithOther}}</el-button>
  31. </el-form-item>
  32. <el-form-item class="customer-button">
  33. <el-button type="primary" @click="refreshCurrentPageTable()" style="margin-left: 10px; margin-bottom: 5px;">
  34. {{buttons.refreshButton}}</el-button>
  35. </el-form-item>
  36. </el-col>
  37. </el-row>
  38. <el-form class="customer-components">
  39. <el-table @row-click="setCurrentRow"
  40. :height="height"
  41. highlight-current-row
  42. :data="labelArrays"
  43. border
  44. v-loading="dataListLoading"
  45. style="width: 100%;">
  46. <el-table-column
  47. v-for="(item,index) in columnList" :key="index"
  48. :sortable="item.columnSortable"
  49. :prop="item.columnProp"
  50. :header-align="item.headerAlign"
  51. :show-overflow-tooltip="item.showOverflowTooltip"
  52. :align="item.align"
  53. :fixed="item.fixed==''?false:item.fixed"
  54. :width="item.columnWidth"
  55. :label="item.columnLabel">
  56. <template slot-scope="scope">
  57. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  58. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  59. style="width: 100px; height: 80px"/></span>
  60. </template>
  61. </el-table-column>
  62. <el-table-column
  63. fixed="left"
  64. header-align="center"
  65. align="center"
  66. width="150"
  67. :label=labels.operationLabel>
  68. <template slot-scope="scope">
  69. <a class="customer-a" v-if="scope.row.dbFieldName === '流水号'" @click="serialRuleModal(scope.row)">{{ labels.serialRuleLabel }}</a>
  70. <a class="customer-a" v-if="scope.row.dbFieldName === '流水号'" @click="serialInfoModal(scope.row)">{{ labels.serialInfoLabel }}</a>
  71. </template>
  72. </el-table-column>
  73. </el-table>
  74. </el-form>
  75. </el-form>
  76. </el-dialog>
  77. <!-- 新增或者修改的modal -->
  78. <comAddUpdateLabel ref="comAddUpdateLabel" @refreshCurrentPageTable="refreshCurrentPageTable" v-drag></comAddUpdateLabel>
  79. <!-- 复制其他的模版的标签 -->
  80. <comCopyLabelAllContents ref="comCopyLabelAllContents" @refreshCurrentPageTable="refreshCurrentPageTable" v-drag></comCopyLabelAllContents>
  81. <!-- 标签内容流水号规则 -->
  82. <comLabelContentSerialRule ref="comLabelContentSerialRule" @refreshCurrentPageTable="refreshCurrentPageTable" v-drag></comLabelContentSerialRule>
  83. <!-- 标签内容流水号信息 -->
  84. <comShowLabelSerialInfo ref="comShowLabelSerialInfo" @refreshCurrentPageTable="refreshCurrentPageTable" v-drag></comShowLabelSerialInfo>
  85. </div>
  86. </template>
  87. <script>
  88. import {
  89. getLabelContentList,
  90. deleteLabelContent,
  91. copyLabelContent,
  92. } from '@/api/labelSetting/com_show_label_content.js';
  93. /*引入組件*/
  94. import comAddUpdateLabel from "./com_add_update_label_content";/*新增或者修改的組件*/
  95. import comCopyLabelAllContents from "./com_copy_label_content";/*复制报表内容的組件*/
  96. import comLabelContentSerialRule from "./com_label_content_serial_rule";/*复制报表内容的組件*/
  97. import comShowLabelSerialInfo from "./com_show_label_serial_info";/*标签内容流水号信息的組件*/
  98. /* 动态表头 */
  99. import {
  100. saveTableDefaultList,
  101. getTableDefaultListLanguage,
  102. getTableUserListLanguage,
  103. removerDefault,
  104. removerUser
  105. } from '@/api/table.js'
  106. import {
  107. searchSysLanguagePackList,
  108. searchSysLanguageParam,
  109. searchFunctionButtonList,
  110. saveButtonList,
  111. searchSysLanguage,
  112. searchLanguageListByLanguageCode,
  113. saveSysLanguageOne,
  114. searchPageLanguageData,
  115. removerLanguage,
  116. saveSysLanguageList
  117. } from "@/api/sysLanguage.js";
  118. var functionId = 'C10000046';
  119. export default {
  120. data() {
  121. return {
  122. titleCon: '打印内容定义',
  123. showDefault: false,
  124. visible: false,
  125. height: 200,
  126. pageData: {
  127. site: this.$store.state.user.site,
  128. username: this.$store.state.user.name,
  129. labelNo: '',
  130. labelType: '',
  131. labelName: '',
  132. labelClass: '',
  133. remark: '',
  134. searchFlag: 'N',
  135. },
  136. columnList: [
  137. {
  138. userId: this.$store.state.user.name,
  139. functionId: 'C10000046',
  140. serialNumber: 'C10000046LabelItemNo',
  141. tableId: 'C10000046Label',
  142. tableName: '标签参数定义',
  143. columnProp: 'itemNo',
  144. headerAlign: 'center',
  145. align: 'center',
  146. columnLabel: '序号',
  147. columnWidth: 60,
  148. columnHidden: false,
  149. columnImage: false,
  150. columnSortable: true,
  151. sortLv: 0,
  152. status: true,
  153. fixed: ''
  154. }, {
  155. userId: this.$store.state.user.name,
  156. functionId: 'C10000046',
  157. serialNumber: 'C10000046LabelItemDesc',
  158. tableId: 'C10000046Label',
  159. tableName: '标签参数定义',
  160. columnProp: 'itemDesc',
  161. headerAlign: 'center',
  162. align: 'center',
  163. columnLabel: '内容描述',
  164. columnWidth: 80,
  165. columnHidden: false,
  166. columnImage: false,
  167. columnSortable: true,
  168. sortLv: 0,
  169. status: true,
  170. fixed: ''
  171. }, {
  172. userId: this.$store.state.user.name,
  173. functionId: 'C10000046',
  174. serialNumber: 'C10000046LabelObjectName',
  175. tableId: 'C10000046Label',
  176. tableName: '标签参数定义',
  177. columnProp: 'objectName',
  178. headerAlign: 'center',
  179. align: 'center',
  180. columnLabel: 'Bartender字符串名称',
  181. columnWidth: 180,
  182. columnHidden: false,
  183. columnImage: false,
  184. columnSortable: true,
  185. sortLv: 0,
  186. status: true,
  187. fixed: ''
  188. }, {
  189. userId: this.$store.state.user.name,
  190. functionId: 'C10000046',
  191. serialNumber: 'C10000046LabelObjectGroup',
  192. tableId: 'C10000046Label',
  193. tableName: '标签参数定义',
  194. columnProp: 'objectGroup',
  195. headerAlign: 'center',
  196. align: 'left',
  197. columnLabel: 'Bartender控件名称',
  198. columnWidth: 180,
  199. columnHidden: false,
  200. columnImage: false,
  201. columnSortable: false,
  202. sortLv: 0,
  203. status: true,
  204. fixed: ''
  205. }, {
  206. userId: this.$store.state.user.name,
  207. functionId: 'C10000046',
  208. serialNumber: 'C10000046LabelDbFieldName',
  209. tableId: 'C10000046Label',
  210. tableName: '标签参数定义',
  211. columnProp: 'dbFieldName',
  212. headerAlign: 'center',
  213. align: 'left',
  214. columnLabel: '对应ERP字段',
  215. columnWidth: 100,
  216. columnHidden: false,
  217. columnImage: false,
  218. columnSortable: false,
  219. sortLv: 0,
  220. status: true,
  221. fixed: ''
  222. }, {
  223. userId: this.$store.state.user.name,
  224. functionId: 'C10000046',
  225. serialNumber: 'C10000046LabelSequenceBits',
  226. tableId: 'C10000046Label',
  227. tableName: '标签参数定义',
  228. columnProp: 'sequenceBits',
  229. headerAlign: 'center',
  230. align: 'left',
  231. columnLabel: '流水号位数',
  232. columnWidth: 80,
  233. columnHidden: false,
  234. columnImage: false,
  235. columnSortable: false,
  236. sortLv: 0,
  237. status: true,
  238. fixed: ''
  239. }, {
  240. userId: this.$store.state.user.name,
  241. functionId: 'C10000046',
  242. serialNumber: 'C10000046LabelIntervalValue',
  243. tableId: 'C10000046Label',
  244. tableName: '标签参数定义',
  245. columnProp: 'intervalValue',
  246. headerAlign: 'center',
  247. align: 'left',
  248. columnLabel: '流水码增量',
  249. columnWidth: 80,
  250. columnHidden: false,
  251. columnImage: false,
  252. columnSortable: false,
  253. sortLv: 0,
  254. status: true,
  255. fixed: ''
  256. },
  257. ],
  258. currentRow: {},
  259. labelArrays: [],
  260. dataListLoading: false,
  261. queryTable: {
  262. userId: this.$store.state.user.name,
  263. functionId: functionId,
  264. tableId: 'C10000046Label',
  265. languageCode: this.$i18n.locale
  266. },
  267. // 用户table 查询参数
  268. queryTableUser: {
  269. userId: this.$store.state.user.name,
  270. functionId: functionId,
  271. tableId: 'C10000046Label',
  272. status: true,
  273. languageCode: this.$i18n.locale
  274. },
  275. buttons: {
  276. addButton: '新增',
  277. editButton: '修改',
  278. deleteButton: '删除',
  279. copyButton: '复制',
  280. copyButtonWithOther: '从其他模版复制',
  281. refreshButton: '刷新',
  282. },
  283. queryButton: {
  284. functionId: functionId,
  285. table_id: '*',
  286. languageCode: this.$i18n.locale,
  287. objectType: 'button'
  288. },
  289. labels: {
  290. titleCon: '打印内容定义',
  291. labelName: '标签名称:',
  292. serialRuleLabel: '流水号规则',
  293. serialInfoLabel: '流水号信息',
  294. sureDeleteThisRecord: '确定要删除该记录吗?',
  295. tipsLabel: '提示',
  296. confirmLabel: '确定',
  297. cancelLabel: '取消',
  298. },
  299. queryLabel: {
  300. functionId: functionId,
  301. table_id: '*',
  302. languageCode: this.$i18n.locale,
  303. objectType: 'label'
  304. },
  305. }
  306. },
  307. methods: {
  308. //初始化组件的参数
  309. init(currentRow) {
  310. //初始化参数
  311. this.pageData = JSON.parse(JSON.stringify(currentRow));
  312. //打开页面
  313. this.visible = true;
  314. //默认不查询
  315. this.searchFlag = 'Y';
  316. //判断是否启用多语言
  317. this.getMultiLanguageList();
  318. // 获取动态表头的信息
  319. this.getTableUserColumn();
  320. //重置标题
  321. this.titleCon = this.labels.titleCon;
  322. //组合标签内容
  323. this.pageData.labelName = this.pageData.labelType +" "+ this.pageData.remark;
  324. //刷新当前页面的table
  325. this.getLabelContentMethod();
  326. },
  327. /*刷新页面*/
  328. refreshCurrentPageTable(){
  329. this.pageData.searchFlag = 'Y';
  330. //调用方法 刷新数据
  331. this.getLabelContentMethod();
  332. },
  333. /*查询列表的参数*/
  334. getLabelContentMethod(){
  335. getLabelContentList(this.pageData).then(({data}) => {
  336. this.labelArrays = data.rows;
  337. });
  338. },
  339. /* 设置选中行的参数 */
  340. setCurrentRow(row, column, event) {
  341. this.currentRow = JSON.parse(JSON.stringify(row))
  342. },
  343. /*新增打印参数*/
  344. addLabelParameterModal(){
  345. let currentData = {
  346. site: this.$store.state.user.site,
  347. username: this.$store.state.user.name,
  348. labelNo: this.pageData.labelNo,
  349. itemNo: '',
  350. showSeqNo: '',
  351. itemDesc: '',
  352. objectName: '',
  353. objectGroup: '',
  354. dbFieldName: '',
  355. sequenceBits: -1,
  356. intervalValue: -1,
  357. sequenceNoFlag: 'N',
  358. addFlag: 'Y',
  359. };
  360. //打开组件 去做新增业务
  361. this.$nextTick(() => {
  362. this.$refs.comAddUpdateLabel.init(currentData);
  363. })
  364. },
  365. /*验证时长的参数*/
  366. updateLabelParameterModal(){
  367. //打开组件 去做新增业务
  368. this.$nextTick(() => {
  369. this.$refs.comAddUpdateLabel.init(this.currentRow);
  370. })
  371. },
  372. /*删除打印参数*/
  373. deleteLabelContentConfirm(){
  374. this.$confirm(this.labels.sureDeleteThisRecord, this.labels.tipsLabel, {
  375. confirmButtonText: this.labels.confirmLabel,
  376. cancelButtonText: this.labels.cancelLabel,
  377. type: 'warning'
  378. }).then(() => {
  379. deleteLabelContent(this.currentRow).then(({data}) => {
  380. if (data && data.code == 200) {
  381. this.refreshCurrentPageTable();
  382. this.$message.success(data.msg);
  383. } else {
  384. this.$message.error(data.msg);
  385. }
  386. });
  387. });
  388. },
  389. /*复制打印参数*/
  390. copyLabelContentMethod(){
  391. copyLabelContent(this.currentRow).then(({data}) => {
  392. if (data && data.code == 200) {
  393. this.refreshCurrentPageTable();
  394. this.$message.success(data.msg);
  395. } else {
  396. this.$message.error(data.msg);
  397. }
  398. });
  399. },
  400. copyLabelContentWithOtherMethod(){
  401. //打开组件 去做复制其他标签业务
  402. this.$nextTick(() => {
  403. this.$refs.comCopyLabelAllContents.init(this.pageData);
  404. })
  405. },
  406. /*流水号规则的modal*/
  407. serialRuleModal(row){
  408. //打开组件 去做复制其他标签业务
  409. this.$nextTick(() => {
  410. this.$refs.comLabelContentSerialRule.init(row);
  411. })
  412. },
  413. /*流水号信息的modal*/
  414. serialInfoModal(row){
  415. //打开组件 去做复制其他标签业务
  416. this.$nextTick(() => {
  417. this.$refs.comShowLabelSerialInfo.init(row);
  418. })
  419. },
  420. /*关闭modal*/
  421. closeDialog(){
  422. //刷新报工的页面
  423. this.$emit('refreshPageTables');
  424. //关闭当前的页面
  425. this.visible = false;
  426. },
  427. getMultiLanguageList() {
  428. //首先查询当前按钮的多语言
  429. searchFunctionButtonList(this.queryButton).then(({data}) => {
  430. if (data && data.code == 0 ) {
  431. this.buttons = data.data
  432. } else {
  433. // saveButtonList(this.buttonList).then(({data}) => {
  434. // })
  435. }
  436. });
  437. //其次查询当前标签的多语言
  438. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  439. if (data && data.code == 0 ) {
  440. this.labels = data.data
  441. } else {
  442. // saveButtonList(this.buttonList).then(({data}) => {
  443. // })
  444. }
  445. });
  446. },
  447. // 获取 用户保存的 格式列
  448. getTableUserColumn() {
  449. getTableUserListLanguage(this.queryTableUser).then(({data}) => {
  450. if (data && data.code == 0 && data.rows.length > 0) {
  451. // this.columnList = []
  452. this.columnList = data.rows
  453. } else {
  454. this.getColumnList()
  455. }
  456. })
  457. },
  458. // 获取 tableDefault 列
  459. getColumnList() {
  460. getTableDefaultListLanguage(this.queryTable).then(({data}) => {
  461. if (data && data.code == 0) {
  462. // this.showDefault = false
  463. this.columnList = data.rows
  464. } else {
  465. // this.showDefault = true
  466. }
  467. })
  468. },
  469. },
  470. /*组件*/
  471. components: {
  472. comAddUpdateLabel,/*标签新增或者修改的组件*/
  473. comCopyLabelAllContents,/*复制报表的内容*/
  474. comLabelContentSerialRule,/*标签内容序列号规则*/
  475. comShowLabelSerialInfo,/*标签内容流水号信息的組件*/
  476. },
  477. mounted() {
  478. this.$nextTick(() => {
  479. this.height = 265;
  480. })
  481. },
  482. created() {
  483. // this.factoryList()
  484. // this.getLanguageList()
  485. }
  486. }
  487. </script>
  488. <style scoped lang="scss">
  489. .customer-css .el-tabs__content{
  490. padding: 0px !important;
  491. }
  492. </style>