index.vue 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <template>
  2. <div class="main-div" ref="mainDiv">
  3. <loading :loading="loading" v-if="!modalVisible"></loading>
  4. <!--按钮区-->
  5. <BaseIndexButtonGroup ref="BaseIndexButtonGroup" id="BaseIndexButtonGroup">
  6. <template #left>
  7. <!-- 查询 -->
  8. <BaseIndexButton right-button="role-select" ref="search" name="search"></BaseIndexButton>
  9. <!-- 清空条件 -->
  10. <BaseIndexButton right-button="role-clear" ref="clear" name="clear"></BaseIndexButton>
  11. <!-- 编辑 -->
  12. <BaseIndexButton right-button="role-edit" ref="edit" name="edit"></BaseIndexButton>
  13. </template>
  14. <template #right>
  15. <!-- 新建 -->
  16. <BaseIndexButton right-button="role-add" ref="add" name="add"></BaseIndexButton>
  17. </template>
  18. </BaseIndexButtonGroup>
  19. <!-- 查询条件区域 -->
  20. <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
  21. <SearchCond ref="searchCond" v-model="searchCond"
  22. @collapse-change="collapseChange" :setFlag="false"
  23. :search-content="searchContent"></SearchCond>
  24. </div>
  25. <!-- 表格部分 -->
  26. <div>
  27. <DkTable :id="'table-'+$options.name" ref="table-select" :data="tableData"
  28. :page-total="pageInfo.total"
  29. :current-page="pageInfo.currentPage"
  30. :height="this.tableHeight" primaryKey="ftyId"
  31. :multiple="false"
  32. :choose-flag="false"
  33. @pageChange="pageSizeChange">
  34. <DkTableColumn field="ftyCode" type="link" @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
  35. <DkTableColumn field="ftyName"></DkTableColumn>
  36. <DkTableColumn field="ftyDocNo"></DkTableColumn>
  37. <DkTableColumn field="displayNo"></DkTableColumn>
  38. <DkTableColumn field="flgValid" type="switch" @on-switch-change="onSwitchChange"
  39. :switch-disabled="false"></DkTableColumn>
  40. <DkTableColumn field="remarks" width="auto"></DkTableColumn>
  41. </DkTable>
  42. </div>
  43. <!--新建编辑-->
  44. <DkModal
  45. :loading="loading"
  46. v-model="editAddModal"
  47. ref="modal_editAdd"
  48. @on-visible-change="handleVisibleModal"
  49. @modalOk="save"
  50. :saveFlag="true"
  51. :title="modalTitle"
  52. >
  53. <DkForm ref="formInline" v-model="formData" :col-count="1">
  54. <!-- 工厂编码 -->
  55. <DkFormItem prop="ftyCode" :required="true">
  56. <InputPop v-model="formData.ftyCode" ref="ftyCode"/>
  57. </DkFormItem>
  58. <!-- 工厂名称 -->
  59. <DkFormItem prop="ftyName" :required="true">
  60. <InputPop v-model="formData.ftyName" ref="ftyName"/>
  61. </DkFormItem>
  62. <!-- 单据代码 -->
  63. <DkFormItem prop="ftyDocNo" :required="true" :data-type="$config.dataType.str">
  64. <InputPop v-model="formData.ftyDocNo" ref="ftyDocNo" maxlength="4" />
  65. </DkFormItem>
  66. <!-- 显示顺序 -->
  67. <DkFormItem prop="displayNo" :data-type="$config.dataType.number" :required="true">
  68. <InputNumberPop v-model="formData.displayNo" :digits=0 :min="0"/>
  69. </DkFormItem>
  70. <!-- 备注 -->
  71. <DkFormItem prop="remarks">
  72. <InputPop v-model="formData.remarks" textareaFlag/>
  73. </DkFormItem>
  74. </DkForm>
  75. </DkModal>
  76. </div>
  77. </template>
  78. <script>
  79. import {indexMixin} from "@/mixins";
  80. export default {
  81. name: "factory",
  82. mixins: [indexMixin],
  83. data() {
  84. let self = this
  85. return {
  86. editAddModal: false,
  87. modalTitle: '',//新建编辑弹窗名称
  88. submitType: '',//新建编辑提交类型、
  89. formData: {
  90. regionData:null,
  91. ftyName: '',
  92. ftyCode: null,
  93. ftyDocNo: null,//单据代码
  94. displayNo: 0,
  95. remarks: ''
  96. },
  97. // 查询条件
  98. searchContent: [
  99. {
  100. itemCode: 'ftyName',
  101. },
  102. self.$config.flgValidSearch // 有效标识
  103. ],
  104. }
  105. },
  106. methods: {
  107. // region 一览界面操作
  108. /**
  109. * @desc : 获取数据
  110. * @author : 周兴
  111. * @date : 2022年12月13日15:04:17
  112. */
  113. getData(params) {
  114. // 在共同里赋值工厂Id,这里需要置空,其他模块不用
  115. params.ftyId = null;
  116. // 查询数据
  117. return this.excute(this.$service.factoryService, this.$service.factoryService.selectByCond, params);
  118. },
  119. /**
  120. * @desc : switch停用启用
  121. * @author : 周兴
  122. * @date : 2022年12月13日15:38:58
  123. */
  124. onSwitchChange(param) {
  125. if (param.flgValid) {
  126. this.excuteNoParam(this.$service.factoryService, this.$service.factoryService.enable, [param.ftyId])
  127. } else {
  128. this.excuteNoParam(this.$service.factoryService, this.$service.factoryService.disable, [param.ftyId])
  129. }
  130. },
  131. // endregion 一览界面操作end
  132. // region 新建/编辑操作
  133. /**
  134. * @desc : 新建按钮点击事件
  135. * @author : 周兴
  136. * @date : 2022年12月13日10:28:36
  137. */
  138. add() {
  139. this.modalTitle = this.setTitle(this.$config.formMode.add, 'fty') // 给modal标题赋值
  140. this.modalParams = {
  141. button: this.$config.formMode.add,
  142. }
  143. this.editAddModal = true
  144. },
  145. /**
  146. * @desc : 编辑按钮事件
  147. * @author : 周兴
  148. * @date : 2022年12月13日10:13:23
  149. */
  150. edit(rows) {
  151. this.modalTitle = this.setTitle(this.$config.formMode.edit, 'fty') // 给modal标题赋值
  152. this.modalParams = {
  153. button: this.$config.formMode.edit,
  154. closeFlag: true
  155. }
  156. if (rows.length > 0) {
  157. this.detail(rows[0].ftyId)
  158. }
  159. this.editAddModal = true
  160. },
  161. /**
  162. * @desc : 加载数据
  163. * @author : 周兴
  164. * @date : 2023/1/6 12:58
  165. */
  166. initData(type) {
  167. if (type === this.$config.formMode.add) {
  168. // 加载最大序号
  169. this.getMaxDisplayNo(this.$config.displayNoTable.factory);
  170. }
  171. },
  172. /**
  173. * @desc : 给参数赋值
  174. * @author : 周兴
  175. * @date : 2022年12月13日10:56:56
  176. */
  177. setParams() {
  178. //校验名称是否重复
  179. if (!this.validData()) {
  180. return
  181. }
  182. this.params = {...this.formData}
  183. },
  184. /**
  185. * @desc : 校验
  186. * @date : 2023/5/5 9:54
  187. * @author : 寇珊珊
  188. */
  189. validData(){
  190. // 判断是否变更信息
  191. if(!this.formData.ftyDocNo || this.formData.ftyDocNo.length!=4) {
  192. this.$Message.error(this.$t('W_147'))
  193. return false;
  194. }
  195. return true;
  196. },
  197. /**
  198. * @desc : 保存方法
  199. * @author : 周兴
  200. * @date : 2023/1/4 9:25
  201. */
  202. saveData() {
  203. this.params.ftyId = this.formData.ftyId
  204. if (this.modalParams.button === this.$config.formMode.add) {
  205. return this.excute(this.$service.factoryService, this.$service.factoryService.insert, this.params);
  206. } else {
  207. return this.excute(this.$service.factoryService, this.$service.factoryService.update, this.params);
  208. }
  209. },
  210. /**
  211. * @desc : 清空数据
  212. * @author : 周兴
  213. * @date : 2023/1/3 19:58
  214. */
  215. clear() {
  216. this.formData = {
  217. ftyName: '',
  218. ftyCode: '',
  219. ftyDocNo: null,
  220. displayNo: 0,
  221. remarks: ''
  222. }
  223. this.getMaxDisplayNo(this.$config.displayNoTable.factory);
  224. },
  225. /**
  226. * @desc : 通过id查询
  227. * @author : 周兴
  228. * @date : 2022/5/5 13:15
  229. */
  230. detail(id) {
  231. this.excuteNoParam(this.$service.factoryService, this.$service.factoryService.selectById,
  232. [id], false).then(res => {//调用api查询方法
  233. if (res.code === this.$config.SUCCESS_CODE) {
  234. this.formData = res.data
  235. }
  236. })
  237. },
  238. // endregion
  239. },
  240. created() {
  241. this.primaryKey = 'factoryId' // 设置主键Id
  242. this.routeObjName = 'factory' // 设置路由名称
  243. }
  244. }
  245. </script>
  246. <style scoped>
  247. </style>