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.

343 lines
11 KiB

  1. <template>
  2. <div class="customer-css">
  3. <el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" width="380px" style="height: 380px;" class="customer-dialog">
  4. <el-form :inline="true" label-position="top" label-width="80px">
  5. <!-- 标签自定义信息 -->
  6. <el-row>
  7. <el-col :span="12">
  8. <el-form-item class="customer-item" :label=labels.labelType>
  9. <el-select v-model="pageData.labelType" disabled style="width: 150px;" >
  10. <el-option label="外箱标签" value="外箱标签"></el-option>
  11. <el-option label="卷标签" value="卷标签"></el-option>
  12. </el-select >
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item class="customer-item" :label=labels.labelNo>
  17. <el-input v-model="pageData.labelNo" :readonly="labelNoReadOnly" @blur="checkLabelNoMethod()" style="width: 120px;" ></el-input>
  18. </el-form-item>
  19. </el-col>
  20. </el-row>
  21. <el-row>
  22. <el-col :span="12">
  23. <el-form-item class="customer-item" :label=labels.labelClass>
  24. <el-select v-model="pageData.labelClass" disabled style="width: 150px;" >
  25. <el-option label="打印软件" value="打印软件"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. </el-col>
  29. <el-col :span="12">
  30. <el-form-item class="customer-item" :label=labels.labelName>
  31. <el-input v-model="pageData.labelName" disabled style="width: 120px;" ></el-input>
  32. </el-form-item>
  33. </el-col>
  34. </el-row>
  35. <el-row>
  36. <el-col :span="12">
  37. <el-form-item class="customer-item" style="margin-top: -8px;">
  38. <span>{{labels.subLabelFlag}}</span>
  39. <el-checkbox v-model="pageData.subLabelFlag" @change="changeParentLabelNo()" true-label="Y" false-label="N"
  40. style="margin-top: 28px; margin-left: 10px;"></el-checkbox>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="12">
  44. <el-form-item class="customer-item" :label=labels.parentLabelNo>
  45. <el-input v-model="pageData.parentLabelNo" style="width: 120px;" ></el-input>
  46. </el-form-item>
  47. </el-col>
  48. </el-row>
  49. <el-row>
  50. <el-col :span="24">
  51. <el-form-item class="customer-item" :label=labels.remark>
  52. <el-input v-model="pageData.remark" style="width: 310px;" ></el-input>
  53. </el-form-item>
  54. </el-col>
  55. </el-row>
  56. </el-form>
  57. <span slot="footer" class="dialog-footer">
  58. <el-button type="primary" @click="saveLabelSetting()">{{ buttons.saveButton }}</el-button>
  59. <el-button type="primary" @click="closeDialog">{{buttons.closeButton}}</el-button>
  60. </span>
  61. </el-dialog>
  62. </div>
  63. </template>
  64. <script>
  65. import {
  66. insertLabelSetting,
  67. updateLabelSetting,
  68. checkLabelNo,
  69. } from '@/api/labelSetting/com_add_update_default_label.js';
  70. import {
  71. searchSysLanguagePackList,
  72. searchSysLanguageParam,
  73. searchFunctionButtonList,
  74. saveButtonList,
  75. searchSysLanguage,
  76. searchLanguageListByLanguageCode,
  77. saveSysLanguageOne,
  78. searchPageLanguageData,
  79. removerLanguage,
  80. saveSysLanguageList
  81. } from "@/api/sysLanguage.js";
  82. var functionId = 'C10000043';
  83. export default {
  84. data() {
  85. return {
  86. titleCon: '默认标签定义维护',
  87. showDefault: false,
  88. visible: false,
  89. pageData: {
  90. site: this.$store.state.user.site,
  91. username: this.$store.state.user.name,
  92. labelNo: '',
  93. labelType: '',
  94. labelName: '',
  95. labelClass: '',
  96. subLabelFlag: 'N',
  97. parentLabelNo: '*',
  98. remark: '',
  99. addFlag: false,
  100. checkFlag: 'Y',
  101. },
  102. labelNoReadOnly: false,
  103. dataListLoading: false,
  104. buttons: {
  105. saveButton: '保存',
  106. closeButton: '关闭',
  107. },
  108. queryButton: {
  109. functionId: functionId,
  110. table_id: '*',
  111. languageCode: this.$i18n.locale,
  112. objectType: 'button'
  113. },
  114. labels: {
  115. titleCon: '默认标签定义维护',
  116. labelNo: '标签编号:',
  117. labelType: '标签类型:',
  118. labelName: '报表文件名:',
  119. labelClass: '标签种类:',
  120. subLabelFlag: '子报表:',
  121. parentLabelNo: '上机标签编号:',
  122. remark: '备注:',
  123. confirmLabel: '确认',
  124. cancelLabel: '取消',
  125. },
  126. queryLabel: {
  127. functionId: functionId,
  128. table_id: '*',
  129. languageCode: this.$i18n.locale,
  130. objectType: 'label'
  131. },
  132. }
  133. },
  134. methods: {
  135. //初始化组件的参数
  136. init(currentRow) {
  137. //初始化参数
  138. this.pageData = JSON.parse(JSON.stringify(currentRow));
  139. //打开页面
  140. this.visible = true;
  141. //判断是否是新增
  142. if(this.pageData.addFlag == 'Y'){
  143. this.labelNoReadOnly = false;
  144. }else{
  145. this.labelNoReadOnly = true;
  146. }
  147. //重置是否需要检验
  148. this.pageData.checkFlag = 'Y';
  149. //判断是否启用多语言
  150. //this.getMultiLanguageList(); //刷新多语言的信息
  151. //重置标题
  152. this.titleCon = this.labels.titleCon;
  153. },
  154. /*检验标签的编码*/
  155. checkLabelNoMethod(){
  156. checkLabelNo(this.pageData).then(({data}) => {
  157. //判断是否查询到了
  158. if(data && data.code == 200){
  159. //设置参数
  160. let labelSetting = data.resultRow;
  161. this.pageData.labelType = labelSetting.labelType;
  162. this.pageData.labelClass = labelSetting.labelClass;
  163. this.pageData.labelName = labelSetting.labelName;
  164. }else{
  165. this.pageData.labelName = '';
  166. this.pageData.labelNo = '';
  167. this.pageData.labelType = '外箱标签';
  168. this.pageData.labelClass = '打印软件';
  169. this.$message.error(data.msg);
  170. }
  171. })
  172. },
  173. /*子报表事件触发*/
  174. changeParentLabelNo(){
  175. //首选判断是否是选中状态
  176. if(this.pageData.subLabelFlag === 'Y'){
  177. this.pageData.parentLabelNo = '';
  178. }else{
  179. this.pageData.parentLabelNo = '*';
  180. }
  181. },
  182. /*保存标签自定义的信息*/
  183. saveLabelSetting(){
  184. //判断标签内容是否为空
  185. let labelNo = this.pageData.labelNo.trim();
  186. let labelType = this.pageData.labelType.trim();
  187. let labelName = this.pageData.labelName.trim();
  188. if(labelNo == null || labelNo === ''){
  189. this.$message.success("标签编号不能为空!");
  190. return false;
  191. }
  192. if(labelType == null || labelType === ''){
  193. this.$message.success("标签类型不能为空!");
  194. return false;
  195. }
  196. if(labelName == null || labelName === ''){
  197. this.$message.success("报表文件名不能为空!");
  198. return false;
  199. }
  200. //判断是否是新增标签自定义
  201. if(this.pageData.addFlag === 'Y'){
  202. this.insertLabelSettingData();
  203. }else{
  204. this.updateLabelSettingData();
  205. }
  206. },
  207. /*数量失去焦点的事件*/
  208. insertLabelSettingData(){
  209. insertLabelSetting(this.pageData).then(({data}) => {
  210. if(data.code == 200){
  211. this.$message.success(data.msg);
  212. setTimeout(this.closeDialog(), 2000);
  213. }else if(data.code == 201){
  214. this.$confirm(data.msg, '提示', {
  215. confirmButtonText: this.labels.confirmLabel,
  216. cancelButtonText: this.labels.cancelLabel,
  217. type: "warning"
  218. }).then(() => {
  219. //调用存储过程实现
  220. this.pageData.checkFlag = 'N';
  221. //重新调用当前的方法
  222. this.insertLabelSettingData();
  223. }).catch(() => {
  224. //this.pageData.checkFlag = 'Y';
  225. });
  226. //重置标签
  227. this.pageData.checkFlag = 'Y';
  228. }else{
  229. this.$message.error(data.msg);
  230. }
  231. })
  232. },
  233. /*验证时长的参数*/
  234. updateLabelSettingData(){
  235. updateLabelSetting(this.pageData).then(({data}) => {
  236. if(data.code == 200){
  237. this.$message.success(data.msg);
  238. setTimeout(this.closeDialog(), 2000);
  239. }else{
  240. this.$message.error(data.msg);
  241. }
  242. })
  243. },
  244. /*关闭modal*/
  245. closeDialog(){
  246. //刷新报工的页面
  247. this.$emit('refreshPageTables');
  248. //关闭当前的页面
  249. this.visible = false;
  250. },
  251. /*检查新的工具实例信息*/
  252. checkConnectToolInstanceIdBun(){
  253. /*验证工具的实例*/
  254. if(this.pageData.toolInstanceId == null || this.pageData.toolInstanceId == ''){
  255. this.$message.error(this.labels.pleaseScanToolInstanceId);
  256. return false;
  257. }
  258. /*调用检查的方法检验下*/
  259. checkConnectToolInstanceId(this.pageData).then(({data}) => {
  260. //判断是否存在异常
  261. if(data.code == 500){
  262. this.$message.error(data.msg);
  263. }else if (data.resultMap.resultCode == 201){
  264. let msg = data.resultMap.resultMsg;
  265. this.$confirm(msg, '提示', {
  266. confirmButtonText: this.labels.confirmLabel,
  267. cancelButtonText: this.labels.cancelLabel,
  268. type: "warning"
  269. }).then(() => {
  270. this.pageData.checkFlag = true;
  271. }).catch(() => {
  272. this.pageData.checkFlag = false;
  273. });
  274. }else{
  275. this.pageData.checkFlag = true;
  276. }
  277. });
  278. },
  279. // 保存 默认配置 列
  280. async saveMultiLanguage() {
  281. // 保存页面 button label title 属性
  282. let buttons = this.buttonList;
  283. let labels = this.labelsList;
  284. await saveButtonList(buttons)
  285. await saveButtonList(labels)
  286. },
  287. getMultiLanguageList() {
  288. //首先查询当前按钮的多语言
  289. searchFunctionButtonList(this.queryButton).then(({data}) => {
  290. if (data && data.code == 0 ) {
  291. this.buttons = data.data
  292. } else {
  293. // saveButtonList(this.buttonList).then(({data}) => {
  294. // })
  295. }
  296. });
  297. //其次查询当前标签的多语言
  298. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  299. if (data && data.code == 0 ) {
  300. this.labels = data.data
  301. } else {
  302. // saveButtonList(this.buttonList).then(({data}) => {
  303. // })
  304. }
  305. });
  306. },
  307. },
  308. watch: {
  309. pageData: {
  310. deep: true,
  311. handler: function (newV, oldV) {
  312. this.pageData.labelNo = this.pageData.labelNo.toUpperCase();
  313. this.pageData.parentLabelNo = this.pageData.parentLabelNo.toUpperCase();
  314. }
  315. },
  316. },
  317. created() {
  318. // this.factoryList()
  319. // this.getLanguageList()
  320. }
  321. }
  322. </script>
  323. <style scoped lang="scss">
  324. </style>