前端转vue
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.

DepartLevel.store.ts 9.0KB

3 months ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. import * as service from '../services';
  2. import * as util from "@/utils/index.js";
  3. import { message } from "ant-design-vue";
  4. export default {
  5. namespaced: true,
  6. state: {
  7. // 机构层级定义-列表查询条件
  8. tableName: 'com_depart_level_info',
  9. // 保存按钮状态
  10. saveFlag: '0',
  11. // 机构层级定义-列表查询数据
  12. departLevelDefData: {
  13. current: 1,
  14. pageSize: 0,
  15. total: 0,
  16. records: []
  17. },
  18. //新增或修改的数据
  19. dialogData: {
  20. no: '',
  21. key: '',
  22. name: '',
  23. use: '',
  24. use_yn: 'Y',
  25. modalType: '',// 1-新增,2-修改
  26. title: '',
  27. departLevelInfoData: {
  28. current: 1,
  29. pageSize: 0,
  30. total: 0,
  31. records: []
  32. }
  33. },
  34. },
  35. actions: {
  36. // 机构层级定义列表查询
  37. async queryDepartLevelDefData({ state, commit }, payload) {
  38. // 1.获取vuex中的departLevelDefData数据
  39. const departLevelDefData = state.departLevelDefData;
  40. // 2.页面查询条件
  41. const params = {
  42. ...payload.values
  43. };
  44. // 2.调用接口 获取数据
  45. const resp = await service.queryDepartLevelDefData(params);
  46. departLevelDefData.total = resp.total;
  47. departLevelDefData.pageSize = resp.pageSize;
  48. departLevelDefData.records = resp.rows;
  49. // 3.提交下vuex中的departLevelDefData数据
  50. commit("update", { departLevelDefData: departLevelDefData });
  51. },
  52. async loadDialogDataData({ state, commit }, payload) {
  53. // 1.获取vuex中的dialogData数据
  54. const dialogData = state.dialogData;
  55. if (payload == undefined) {
  56. // 新增对话框数据初始化
  57. dialogData.modalType = '1';
  58. dialogData.title = '新增';
  59. // 2.新增页面获取下机构层级外部编码
  60. const resp = await service.getTabKeyRule({
  61. tabName: state.tableName
  62. });
  63. dialogData.key = resp.num;
  64. dialogData.name = '';
  65. dialogData.use = '';
  66. dialogData.departLevelInfoData.current = 1;
  67. dialogData.departLevelInfoData.pageSize = 0;
  68. dialogData.departLevelInfoData.total = 0;
  69. dialogData.departLevelInfoData.records = [];
  70. } else {
  71. // 修改对话框数据初始化
  72. dialogData.modalType = '2';
  73. dialogData.title = '修改';
  74. // 2.修改页面查询层级列表信息
  75. const resp = await service.queryDepartLevelInfoData({
  76. no: payload.no,
  77. page: 1,
  78. rows: 10
  79. });
  80. dialogData.no = payload.no;
  81. dialogData.key = payload.key;
  82. dialogData.name = payload.name;
  83. dialogData.use = payload.use;
  84. dialogData.use_yn = payload.use_yn;
  85. dialogData.departLevelInfoData.current = 1;
  86. dialogData.departLevelInfoData.pageSize = resp.pageSize;
  87. dialogData.departLevelInfoData.total = resp.total;
  88. dialogData.departLevelInfoData.records = resp.rows;
  89. }
  90. // 3.提交下vuex中的dialogData数据
  91. commit("update", { dialogData: dialogData });
  92. },
  93. async queryDepartLevelInfoData({ state, commit }, payload) {
  94. // 1.获取vuex中的dialogData数据
  95. const dialogData = state.dialogData;
  96. // 2.页面查询条件
  97. const params = {
  98. ...payload.values
  99. };
  100. // 2.调用接口 获取数据
  101. const resp = await service.getDepartLevelInfoList(params);
  102. dialogData.departLevelInfoData.total = resp.total;
  103. dialogData.departLevelInfoData.records = resp.rows;
  104. // 3.提交下vuex中的dialogData数据
  105. commit("update", { dialogData: dialogData });
  106. },
  107. async addDepartLevelInfoData({ state, commit }) {
  108. // 1.获取vuex中的dialogData数据
  109. const dialogData = state.dialogData;
  110. dialogData.departLevelInfoData.records.push({
  111. no: util.createUniqueString(),
  112. key: '',
  113. name: '',
  114. use_yn: ''
  115. });
  116. // 总行数加1
  117. dialogData.departLevelInfoData.total++;
  118. // 4.提交下vuex中的dialogData数据
  119. commit("update", { dialogData: dialogData });
  120. },
  121. async deleteDepartLevelInfoData({ state, commit }, payload) {
  122. // 1.获取vuex中的dialogData数据
  123. const dialogData = state.dialogData;
  124. if (payload.index) {
  125. dialogData.departLevelInfoData.records.splice(payload.index, 1);
  126. }
  127. // 总行数加1
  128. dialogData.departLevelInfoData.total--;
  129. // 3.提交下vuex中的dialogData数据
  130. commit("update", { dialogData: dialogData });
  131. },
  132. async saveDepartLevelInfoData({ state, commit, dispatch }, payload) {
  133. // 1.获取vuex中的dialogData数据
  134. const modalType = state.dialogData.modalType;
  135. const dialogData = state.dialogData;
  136. console.log("wyq:saveDepartLevelInfoData 前 dialogData", dialogData);
  137. if (modalType == 1) {
  138. console.log("wyq:saveDepartLevelInfoData 新增 dialogData", dialogData);
  139. // 新增
  140. // 1.新增页面获取下机构层级外部编码
  141. if (dialogData.departLevelInfoData.records.length == 0) {
  142. message.error("请至少添加一个层级!");
  143. return;
  144. }
  145. // 2.调用接口 保存数据
  146. const params = {
  147. key: dialogData.key,
  148. name: dialogData.name,
  149. use: dialogData.use,
  150. use_yn: dialogData.use_yn,
  151. _backFromClent: 'Y',
  152. data: JSON.stringify(dialogData.departLevelInfoData.records)
  153. };
  154. try {
  155. await service.insertDepartLevelInfoData(params);
  156. // 查询下数据
  157. // await dispatch('queryDepartLevelDefData', { values: { key: dialogData.key } });
  158. payload.closeMethod();
  159. // 处理成功响应
  160. message.success("新增成功!");
  161. } catch (error) {
  162. // 处理异常响应,比如弹窗提示等;
  163. message.error(`请求失败: ${error.message}`);
  164. return
  165. }
  166. } else {
  167. console.log("wyq:saveDepartLevelInfoData 修改 dialogData", dialogData);
  168. // 修改
  169. // 2.调用接口 修改数据
  170. const params = {
  171. i_key: dialogData.key,
  172. i_name: dialogData.name,
  173. i_use: dialogData.use,
  174. no: dialogData.no,
  175. use_yn: dialogData.use_yn,
  176. data: JSON.stringify(dialogData.departLevelInfoData.records)
  177. }
  178. try {
  179. await service.updateDepartLevelInfoData(params);
  180. // service.queryDepartLevelDefData({ values: {} });
  181. payload.closeMethod();
  182. // 处理成功响应
  183. message.success("修改成功!");
  184. } catch (error) {
  185. // 处理异常响应,比如弹窗提示等;
  186. message.error(`请求失败: ${error.message}`);
  187. return
  188. }
  189. }
  190. commit("update", { saveFlag: state.saveFlag === '0' ? '1' : '0' });
  191. },
  192. async changeUseYn({ state, commit, dispatch }, payload) {
  193. console.log("wyq:changeUseYn 前 payload", payload.values.use_yn, payload.values.no);
  194. const useYn = payload.values.use_yn;
  195. const params = {
  196. no: payload.values.no
  197. }
  198. try {
  199. await service.changeUseYn(params);
  200. // 处理成功响应
  201. if (useYn == 'Y') {
  202. message.success("停用成功");
  203. } else {
  204. message.success("启用成功");
  205. }
  206. } catch (error) {
  207. // 处理异常响应,比如弹窗提示等;
  208. message.error(`请求失败: ${error.message}`);
  209. return
  210. }
  211. }
  212. },
  213. mutations: {
  214. update(state, payload) {
  215. for (let key in payload) {
  216. state[key] = payload[key];
  217. }
  218. },
  219. }
  220. }