DialogBox.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. import DynamicView from "@/layouts/DynamicView";
  2. var DialogBox = {};
  3. import FormBoListApi from "@/api/form/core/formBoList";
  4. import FormPcDialog from "@/views/modules/form/core/FormPcDialog";
  5. import FormMobileDialog from "@/views/modules/form/core/FormMobileDialog";
  6. import FormSolutionDialog from "@/views/modules/form/core/FormSolutionDialog";
  7. import FormRegLibDialog from "@/views/modules/form/core/FormRegLibDialog";
  8. import FormBoListTreeDialog from "@/views/modules/form/core/FormBoListTreeDialog";
  9. import FormSolutionShow from "@/views/modules/form/core/FormSolutionShow";
  10. import FormSolutionTreeShow from "@/views/modules/form/core/FormSolutionTreeShow";
  11. import FormBoListPreview from "@/views/modules/form/core/FormBoListPreview";
  12. import FormBoListEdit3 from "@/views/modules/form/core/FormBoListEdit3";
  13. import OsUserGet from "@/views/modules/user/org/OsUserGet";
  14. import OsGroupGet from "@/views/modules/user/org/OsGroupGet";
  15. import OsInstGet from "@/views/modules/user/org/OsInstGet";
  16. import SysMenuAddNode from "@/views/modules/system/core/SysMenuAddNode";
  17. import FormUserPermissionEditDialog from '@/views/modules/form/core/formPermission/FormUserPermissionEditDialog';
  18. import SysTreeDialog from "@/views/modules/system/core/SysTreeDialog";
  19. import FormBoListExportExcelDialog from "@/views/modules/form/core/FormBoListExportExcelDialog";
  20. import FormBoListImportExcelDialog from "@/views/modules/form/core/FormBoListImportExcelDialog";
  21. import ButtonFunConfig from "@/views/modules/form/core/ButtonFunConfig";
  22. import FormBoListFieldRang from "@/views/modules/form/core/FormBoListFieldRang";
  23. import SysMenuReleaseDialog from "@/views/modules/system/core/SysMenuReleaseDialog";
  24. import LodopError from "@/views/modules/form/core/LodopError";
  25. import BpmInstStart from "@/views/modules/bpm/core/BpmInstStart";
  26. import FormBusSolutionDialog from "@/views/modules/form/core/FormBusSolutionDialog";
  27. import FormBusSolutionShow from "@/views/modules/form/core/FormBusSolutionShow";
  28. import {Util} from 'jpaas-common-lib'
  29. import store from '@/store'
  30. DialogBox.openLodopError = function (config) {
  31. var baseConf = {
  32. component: LodopError,
  33. widthHeight: ['400px', '300px'],
  34. title: '错误提示'
  35. };
  36. let conf = {...baseConf, ...config};
  37. Util.open(conf, function (action) {
  38. })
  39. }
  40. DialogBox.openMenuReleaseDialog = function (config) {
  41. var baseConf = {
  42. component: SysMenuReleaseDialog,
  43. widthHeight: ['800px', '600px'],
  44. title: '查看发布菜单记录'
  45. };
  46. let conf = {...baseConf, ...config};
  47. Util.open(conf, function (action) {
  48. })
  49. }
  50. DialogBox.openFieldRangConfig = function (config, callback) {
  51. var baseConf = {
  52. component: FormBoListFieldRang,
  53. title: '数据范围配置'
  54. };
  55. let conf = {...baseConf, ...config};
  56. Util.open(conf, function (action, data) {
  57. if (action == 'ok' && callback) {
  58. callback(data);
  59. }
  60. })
  61. }
  62. DialogBox.openButtonFunConfig = function (config, callback) {
  63. var baseConf = {
  64. component: ButtonFunConfig,
  65. title: '按钮方法配置'
  66. };
  67. let conf = {...baseConf, ...config};
  68. Util.open(conf, function (action, data) {
  69. if (action == 'ok' && callback) {
  70. callback(data);
  71. }
  72. })
  73. }
  74. DialogBox.openPermissionUser = function (serf_, eidt, callback) {
  75. var config = {
  76. curVm: serf_, widthHeight: ['800px', '500px']
  77. }
  78. Object.assign(config, {
  79. data: {
  80. value: eidt,
  81. type: serf_.type,
  82. dataType: serf_.dataType
  83. }
  84. });
  85. var baseConf = {
  86. component: FormUserPermissionEditDialog,
  87. title: '权限设置'
  88. };
  89. let conf = {...baseConf, ...config};
  90. Util.open(conf, function (action, data) {
  91. if (action != 'ok') {
  92. return;
  93. }
  94. if (callback) {
  95. callback(this.$parent, data);
  96. }
  97. });
  98. }
  99. DialogBox.openForm = function (config, callBack) {
  100. var baseConf = {
  101. component: FormPcDialog,
  102. title: '表单对话框'
  103. };
  104. let conf = {...baseConf, ...config};
  105. Util.open(conf, function (action) {
  106. var form = this.getForm();
  107. if (callBack) {
  108. callBack(form);
  109. }
  110. })
  111. }
  112. DialogBox.openMobileFormList = function (config, callBack) {
  113. var baseConf = {
  114. component: FormMobileDialog,
  115. title: '手机表单'
  116. };
  117. let conf = {...baseConf, ...config};
  118. Util.open(conf, function (action) {
  119. var form = this.getForm();
  120. if (callBack) {
  121. callBack(form);
  122. }
  123. })
  124. }
  125. DialogBox.openSoution = function (config, callback) {
  126. var baseConf = {
  127. component: FormSolutionDialog,
  128. title: '表单对话框'
  129. };
  130. let conf = {...baseConf, ...config};
  131. Util.open(conf, function (action) {
  132. if (action != 'ok') return;
  133. var soutions = this.getSoutions();
  134. if (callback) {
  135. callback(soutions);
  136. }
  137. })
  138. }
  139. DialogBox.openRegLib = function (config, callback) {
  140. var baseConf = {
  141. component: FormRegLibDialog,
  142. title: '数据校验对话框'
  143. };
  144. let conf = {...baseConf, ...config};
  145. Util.open(conf, function (action) {
  146. if (action != 'ok') return;
  147. var data = this.getData();
  148. if (callback) {
  149. callback(data);
  150. }
  151. })
  152. }
  153. DialogBox.openTreeList = function (config, callback) {
  154. var baseConf = {
  155. component: FormBoListTreeDialog,
  156. title: '树形对话框'
  157. };
  158. let conf = {...baseConf, ...config};
  159. Util.open(conf, function (action) {
  160. if (action != 'ok') return;
  161. var trees = this.getCustomQuery();
  162. if (callback) {
  163. callback(this.$parent, trees);
  164. }
  165. })
  166. }
  167. /**
  168. * DialogBox.showForm({
  169. title:title,
  170. curVm: self,
  171. data: {alias: alias, pkId: pkId, readOnly: readOnly, parent: parent},
  172. max:true
  173. }, function (action) {
  174. self.onRefresh();
  175. });
  176. * @param config
  177. * @param callback
  178. */
  179. DialogBox.showForm = function (config, callback) {
  180. //是否是树形表单方案
  181. var component = config.tree == 1 ? FormSolutionTreeShow : FormSolutionShow;
  182. let _showType = store.state.appSetting.showType;
  183. if (_showType && _showType == "newPage") {//新页面打开,非弹窗类型;
  184. let _key = component.name + config.urlType ;
  185. //获取当前打开组件的 path。component.__source (生产环境下组件path),component.__file (开发环境下path)
  186. let _path = component.__source || component.__file ;
  187. _path = _path.replace('src/views/','');
  188. let obj = {
  189. component:_path,//组件路径
  190. props:config.data,
  191. key:_key,
  192. title:config.title,
  193. cmptKey:_key + new Date().getTime()
  194. }
  195. if(config.data && config.data.alias){
  196. obj.key=config.data.alias;
  197. }
  198. store.commit('appSetting/setActiveKey',obj.key);
  199. let _navigation = store.state.appSetting.navigation;
  200. //如果this.navigation没有存在当前要打开的控件则返回 -1 ;
  201. let _isObj = _navigation.findIndex(item => { return item.key == obj.key && item.title == obj.title });
  202. if(_isObj == -1){
  203. let _arr = [..._navigation,obj];
  204. store.commit('appSetting/setNavigation',_arr);
  205. }else {
  206. //存在的情况下,替换;
  207. let _idx = null ;
  208. let _navArr = _navigation.concat();
  209. for (let i in _navArr){
  210. if(_navArr[i].key == obj.key){
  211. _idx = i ;
  212. }
  213. }
  214. _navArr[_idx] = obj ;
  215. store.commit('appSetting/setNavigation',_navArr);
  216. }
  217. } else {//弹窗打开;
  218. var title = config.title ? config.title : "使用表单";
  219. var baseConf = {
  220. component: component,
  221. title: title
  222. };
  223. let conf = {...baseConf, ...config};
  224. Util.open(conf, function (action,data) {
  225. callback(action,data);
  226. });
  227. }
  228. }
  229. /**
  230. * 打开列表对话框。
  231. * @param parameter {key:"对话框KEY",params:"Q_NAME__S_EQ=老王"}
  232. * @param config {max:true,widthHeight:[data.width + 'px', data.height + 'px']}
  233. * @param callback
  234. */
  235. DialogBox.dialog = function (parameter, config, callback) {
  236. FormBoListApi.setConf(parameter).then(res => {
  237. if (!res.success) return;
  238. var data = res.data;
  239. if (!config.widthHeight && data.isDialog == 'YES') {
  240. config.widthHeight = [data.width + 'px', data.height + 'px'];
  241. }
  242. let obj = {alias: parameter.key};
  243. let _parameter = {...obj, ...parameter}
  244. var baseConf = {
  245. component: FormBoListPreview,
  246. data: _parameter,
  247. title: data.name
  248. };
  249. let conf = {...baseConf, ...config};
  250. Util.open(conf, function (action, data) {
  251. if (action != 'ok') return;
  252. if (callback) {
  253. callback(data);
  254. }
  255. })
  256. });
  257. }
  258. DialogBox.editHtml = function (pkId, config,showModal) {
  259. var baseConf = {
  260. component: FormBoListEdit3,
  261. data: {pkId: pkId,showModal:showModal},
  262. title: 'HTML代码预览'
  263. };
  264. let conf = {...baseConf, ...config};
  265. Util.open(conf, function (action) {
  266. });
  267. }
  268. DialogBox.openDeploymenuDialog = function (parameter, config, callback) {
  269. var baseConf = {
  270. component: SysMenuAddNode,
  271. data: parameter,
  272. title: '发布菜单'
  273. };
  274. let conf = {...baseConf, ...config};
  275. Util.open(conf, function (action, data) {
  276. if (action != 'ok') return;
  277. if (callback) {
  278. callback(data);
  279. }
  280. })
  281. }
  282. DialogBox.getUserDetail = function (self, userId) {
  283. var baseConf = {
  284. "curVm": self,
  285. component: OsUserGet,
  286. title: "用户信息",
  287. widthHeight: ['1200px', '90vh'],
  288. "data": {
  289. "pkId": userId, callback: function (data) {
  290. console.info(data);
  291. }
  292. }
  293. };
  294. Util.open(baseConf, function (action) {
  295. });
  296. }
  297. DialogBox.getGroupDetail = function (self, groupId) {
  298. var baseConf = {
  299. "curVm": self,
  300. component: OsGroupGet,
  301. title: "用户组信息",
  302. widthHeight: ['1200px', '90vh'],
  303. "data": {
  304. "pkId": groupId, callback: function (data) {
  305. console.info(data);
  306. }
  307. }
  308. };
  309. Util.open(baseConf, function (action) {
  310. });
  311. }
  312. DialogBox.getInstDetail = function (self, instId) {
  313. var baseConf = {
  314. "curVm": self,
  315. component: OsInstGet,
  316. title: "机构信息",
  317. widthHeight: ['1200px', '90vh'],
  318. "data": {
  319. "pkId": instId
  320. }
  321. };
  322. Util.open(baseConf, function (action) {
  323. });
  324. }
  325. DialogBox.openSysTreeDialog = function (config, callback) {
  326. var baseConf = {
  327. component: SysTreeDialog,
  328. title: '分类对话框'
  329. };
  330. let conf = {...baseConf, ...config};
  331. Util.open(conf, function (action) {
  332. if (action != 'ok') return;
  333. var data = this.getData();
  334. if (callback) {
  335. callback(data);
  336. }
  337. })
  338. }
  339. DialogBox.openExportExcelDialog = function (config,callback) {
  340. var name = config.data.name;
  341. var baseConf = {
  342. component: FormBoListExportExcelDialog,
  343. title: name + '导出EXCEL表单',
  344. max:true
  345. }
  346. let conf = {...baseConf, ...config};
  347. Util.open(conf, function (action,data) {
  348. if(callback){
  349. callback(action,data);
  350. }
  351. })
  352. }
  353. DialogBox.openImportExcelDialog = function (config, callback) {
  354. var name = config.data.name;
  355. var baseConf = {
  356. component: FormBoListImportExcelDialog,
  357. title: name + '导入EXCEL'
  358. }
  359. let conf = {...baseConf, ...config};
  360. Util.open(conf, function (action) {
  361. if (action != 'ok') return;
  362. if (callback) {
  363. callback();
  364. }
  365. })
  366. }
  367. DialogBox.loadView = (view) => { // 路由懒加载
  368. return require(`@/views/${view}`).default;
  369. //return () => import(`@/views/${view}`)
  370. }
  371. /**
  372. * 打开自定义组件。
  373. *
  374. * @param config {
  375. * component:"组件的URL",
  376. * title:"标题",
  377. * max:true,
  378. * curVm:this,
  379. * widthHeight:['800px','600px'],
  380. * data:{user:{name:"ray",address:"gz"}},
  381. * }
  382. * @param callBack 回调方法 function(action,data){
  383. *
  384. * }
  385. */
  386. DialogBox.openComponent = function (config, callBack) {
  387. var component = DialogBox.loadView(config.component);
  388. var title = config.title || "自定义对话框";
  389. var conf = {
  390. component: DynamicView,
  391. curVm: config.curVm,
  392. title: title,
  393. data: {currentView: component, data: config.data}
  394. };
  395. if (config.widthHeight) {
  396. conf.widthHeight = config.widthHeight;
  397. } else {
  398. conf.max = true;
  399. }
  400. if (config.cancel) {
  401. conf.cancel = config.cancel;
  402. }
  403. Util.open(conf, function (action, data) {
  404. if (callBack) {
  405. callBack(action, data);
  406. }
  407. })
  408. }
  409. /**
  410. * 启动流程。
  411. * @param config
  412. * var data={defId:"1418459535940534274",formData:{address:"gz"}};
  413. var config={
  414. curVm:this,
  415. max:true,
  416. data: data
  417. }
  418. * @param callback (action,data)
  419. */
  420. DialogBox.openStartFlow = function (config,callback) {
  421. var baseConf = {
  422. component: BpmInstStart,
  423. title: '启动流程'
  424. }
  425. let conf = {...baseConf, ...config};
  426. Util.open(conf, function (action,data) {
  427. if (callback) {
  428. callback(action,data);
  429. }
  430. })
  431. }
  432. DialogBox.openBusSolutionDialog= function (config, callback) {
  433. var baseConf = {
  434. component: FormBusSolutionDialog,
  435. title: '业务方案对话框'
  436. };
  437. let conf = {...baseConf, ...config};
  438. Util.open(conf, function (action,data) {
  439. if (action != 'ok') return;
  440. if (callback) {
  441. callback(data);
  442. }
  443. })
  444. }
  445. DialogBox.showBusSolutionForm = function (config, callback) {
  446. var baseConf = {
  447. component: FormBusSolutionShow,
  448. title: config.title
  449. };
  450. let conf = {...baseConf, ...config};
  451. Util.open(conf, function (action,data) {
  452. if (action != 'ok') return;
  453. if (callback) {
  454. callback(data);
  455. }
  456. })
  457. }
  458. export default DialogBox;