insert.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. const _Http = getApp().globalData.http,
  2. getTime = require("../../utils/getTime");
  3. Page({
  4. data: {
  5. loading: false,
  6. showAll: false,
  7. disabled: true,
  8. form: [{
  9. label: "省市县",
  10. error: false,
  11. errMsg: "",
  12. type: "region",
  13. value: [],
  14. placeholder: "省,市,县",
  15. valueName: "region",
  16. required: true
  17. }, {
  18. label: "详细地址",
  19. error: false,
  20. errMsg: "",
  21. type: "textarea",
  22. value: "",
  23. placeholder: "例: 科创园11栋1103室",
  24. valueName: "address",
  25. required: true,
  26. checking: "base"
  27. }, {
  28. label: "现场联系人",
  29. error: false,
  30. errMsg: "",
  31. type: "text",
  32. value: "",
  33. placeholder: "现场联系人",
  34. valueName: "scenecontact",
  35. required: true,
  36. checking: "base"
  37. }, {
  38. label: "身份备注",
  39. error: false,
  40. errMsg: "",
  41. type: "text",
  42. value: "",
  43. placeholder: "现场联系人身份备注",
  44. valueName: "scenecontactrole",
  45. required: true,
  46. checking: "base"
  47. }, {
  48. label: "现场联系人电话",
  49. error: false,
  50. errMsg: "",
  51. type: "number",
  52. value: "",
  53. placeholder: "联系人手机号码",
  54. valueName: "scenecontactphonenumber",
  55. required: true,
  56. checking: "phone"
  57. }, {
  58. label: "应用系统",
  59. error: false,
  60. errMsg: "",
  61. hint: "",
  62. type: "radio",
  63. value: "",
  64. interrupt: false,
  65. radioList: [],
  66. valueName: "class1", //绑定的字段名称
  67. required: true, //必填
  68. checking: `base`,
  69. }, {
  70. label: "客诉大类",
  71. error: false,
  72. errMsg: "",
  73. hint: "",
  74. type: "radio",
  75. value: "",
  76. interrupt: false,
  77. radioList: [],
  78. valueName: "class2", //绑定的字段名称
  79. required: true, //必填
  80. checking: `base`,
  81. }, {
  82. label: "问题描述",
  83. error: false,
  84. errMsg: "",
  85. type: "reason",
  86. value: "",
  87. placeholder: "请填写",
  88. valueName: "reason",
  89. required: true,
  90. checking: "base"
  91. }, {
  92. label: "异常类型",
  93. error: false,
  94. errMsg: "",
  95. hint: "",
  96. type: "radio",
  97. value: "",
  98. interrupt: false,
  99. radioList: [],
  100. valueName: "exception_type", //绑定的字段名称
  101. required: true, //必填
  102. checking: `base`,
  103. }, {
  104. label: "服务等级",
  105. error: false,
  106. errMsg: "",
  107. hint: "",
  108. type: "radio",
  109. value: "",
  110. interrupt: false,
  111. radioList: [],
  112. valueName: "service_level", //绑定的字段名称
  113. required: true, //必填
  114. checking: `base`,
  115. }, {
  116. label: "备注",
  117. error: false,
  118. errMsg: "",
  119. type: "textarea",
  120. value: "",
  121. placeholder: "请填写",
  122. valueName: "remarks",
  123. required: false,
  124. checking: "base"
  125. }],
  126. sa_orderid: "",
  127. sa_workorderid: 0
  128. },
  129. onLoad(options) {
  130. getApp().globalData.Language.getLanguagePackage(this, '编辑工单');
  131. this.getOptions();
  132. let form = this.data.form,
  133. data = getCurrentPages().find(v => v.__route__ == 'E-service/workOrder/detail').data.detail;
  134. data.region = data.province ? [data.province, data.city, data.county] : [];
  135. form = form.map(v => {
  136. switch (v.valueName) {
  137. case 'sys_enterpriseid':
  138. v.value = data[v.valueName] ? [data.enterprisename, [data.sys_enterpriseid]] : ''
  139. break;
  140. default:
  141. v.value = data[v.valueName] || ''
  142. break;
  143. }
  144. return v
  145. })
  146. this.setData({
  147. form,
  148. sa_workorderid: data.sa_workorderid
  149. })
  150. },
  151. submit() {
  152. this.setData({
  153. loading: true
  154. })
  155. let content = {
  156. sa_workorderid: this.data.sa_workorderid,
  157. ...this.selectComponent("#Form").submit()
  158. };
  159. content.province = content.region[0] || "";
  160. content.city = content.region[1] || "";
  161. content.county = content.region[2] || "";
  162. delete content.region
  163. _Http.basic({
  164. "id": 2026020514064602,
  165. content
  166. }).then(res => {
  167. this.setData({
  168. loading: false
  169. })
  170. console.log("编辑工单", res)
  171. if (res.code == 1) {
  172. getCurrentPages().find(v => v.__route__ == 'E-service/workOrder/detail').getDetail();
  173. wx.navigateBack({
  174. success() {
  175. wx.showToast({
  176. title: getApp().globalData.Language.getMapText('保存成功'),
  177. icon: "none",
  178. mask: true
  179. })
  180. }
  181. });
  182. } else {
  183. wx.showToast({
  184. title: res.code != '1' ? res.msg : getApp().globalData.Language.getMapText('保存成功'),
  185. icon: "none",
  186. mask: true
  187. })
  188. }
  189. })
  190. },
  191. getOptions() {
  192. let form = this.data.form;
  193. // 服务类型
  194. let servicetypes = _Http.servicetypes || [];
  195. if (!servicetypes.length) {
  196. _Http.basic({
  197. "id": 20230206112003,
  198. "content": {},
  199. }).then(res => {
  200. console.log("服务类型", res)
  201. if (res.code == 1) {
  202. servicetypes = res.data.map(v => {
  203. return {
  204. id: v.value,
  205. name: v.value,
  206. }
  207. });
  208. let data = form.find(v => v.valueName == 'servicetype');
  209. data.radioList = servicetypes;
  210. data.value = data.value || servicetypes[0].id;
  211. _Http.servicetypes = servicetypes;
  212. this.setData({
  213. form
  214. })
  215. }
  216. })
  217. } else {
  218. let data = form.find(v => v.valueName == 'servicetype');
  219. data.radioList = servicetypes;
  220. data.value = data.value || servicetypes[0].id;
  221. this.setData({
  222. form
  223. })
  224. }
  225. // 应用系统
  226. let class1s = _Http.class1s || [];
  227. if (!class1s.length) {
  228. _Http.basic({
  229. "classname": "sysmanage.develop.optiontype.optiontype",
  230. "method": "optiontypeselect",
  231. "content": {
  232. "pageNumber": 1,
  233. "pageSize": 1000,
  234. "typename": "systemapp",
  235. },
  236. }).then(res => {
  237. console.log("应用系统", res)
  238. if (res.code == 1) {
  239. class1s = res.data.map(v => {
  240. return {
  241. id: v.value,
  242. name: v.value,
  243. }
  244. });
  245. let data = form.find(v => v.valueName == 'class1');
  246. data.radioList = class1s;
  247. data.value = data.value || class1s[0].id;
  248. _Http.class1s = class1s;
  249. this.setData({
  250. form
  251. })
  252. }
  253. })
  254. } else {
  255. let data = form.find(v => v.valueName == 'class1');
  256. data.radioList = class1s;
  257. data.value = data.value || class1s[0].id;
  258. this.setData({
  259. form
  260. })
  261. }
  262. // 客诉大类
  263. let class2s = _Http.class2s || [];
  264. if (!class2s.length) {
  265. _Http.basic({
  266. "classname": "sysmanage.develop.optiontype.optiontype",
  267. "method": "optiontypeselect",
  268. "content": {
  269. "pageNumber": 1,
  270. "pageSize": 1000,
  271. "typename": "customerclass",
  272. },
  273. }).then(res => {
  274. console.log("客诉大类", res)
  275. if (res.code == 1) {
  276. class2s = res.data.map(v => {
  277. return {
  278. id: v.value,
  279. name: v.value,
  280. }
  281. });
  282. let data = form.find(v => v.valueName == 'class2');
  283. data.radioList = class2s;
  284. data.value = data.value || class2s[0].id;
  285. _Http.class2s = class2s;
  286. this.setData({
  287. form
  288. })
  289. }
  290. })
  291. } else {
  292. let data = form.find(v => v.valueName == 'class2');
  293. data.radioList = class2s;
  294. data.value = data.value || class2s[0].id;
  295. this.setData({
  296. form
  297. })
  298. }
  299. // 异常类型
  300. let exception_types = _Http.exception_types || [];
  301. if (!exception_types.length) {
  302. _Http.basic({
  303. "classname": "sysmanage.develop.optiontype.optiontype",
  304. "method": "optiontypeselect",
  305. "content": {
  306. "pageNumber": 1,
  307. "pageSize": 1000,
  308. "typename": "exceptiontype",
  309. },
  310. }).then(res => {
  311. console.log("异常类型", res)
  312. if (res.code == 1) {
  313. exception_types = res.data.map(v => {
  314. return {
  315. id: v.value,
  316. name: v.value,
  317. }
  318. });
  319. let data = form.find(v => v.valueName == 'exception_type');
  320. data.radioList = exception_types;
  321. data.value = data.value || exception_types[0].id;
  322. _Http.exception_types = exception_types;
  323. this.setData({
  324. form
  325. })
  326. }
  327. })
  328. } else {
  329. let data = form.find(v => v.valueName == 'exception_type');
  330. data.radioList = exception_types;
  331. data.value = data.value || exception_types[0].id;
  332. this.setData({
  333. form
  334. })
  335. }
  336. // 服务等级
  337. let service_levels = _Http.service_levels || [];
  338. if (!service_levels.length) {
  339. _Http.basic({
  340. "classname": "sysmanage.develop.optiontype.optiontype",
  341. "method": "optiontypeselect",
  342. "content": {
  343. "pageNumber": 1,
  344. "pageSize": 1000,
  345. "typename": "servicelevel",
  346. },
  347. }).then(res => {
  348. console.log("服务等级", res)
  349. if (res.code == 1) {
  350. service_levels = res.data.map(v => {
  351. return {
  352. id: v.value,
  353. name: v.value,
  354. }
  355. });
  356. let data = form.find(v => v.valueName == 'service_level');
  357. data.radioList = service_levels;
  358. data.value = data.value || service_levels[0].id;
  359. _Http.service_levels = service_levels;
  360. this.setData({
  361. form
  362. })
  363. }
  364. })
  365. } else {
  366. let data = form.find(v => v.valueName == 'service_level');
  367. data.radioList = service_levels;
  368. data.value = data.value || service_levels[0].id;
  369. this.setData({
  370. form
  371. })
  372. }
  373. },
  374. // 是否显示全部
  375. onChange({
  376. detail
  377. }) {
  378. this.setData({
  379. showAll: detail
  380. })
  381. },
  382. /* 表单必填项是否完成 */
  383. onConfirm({
  384. detail
  385. }) {
  386. this.setData({
  387. disabled: detail
  388. })
  389. }
  390. })