insert.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. let _Http = getApp().globalData.http,
  2. count = null;
  3. Page({
  4. data: {
  5. loading: false,
  6. showAll: false,
  7. content: {
  8. sa_contractid: 0
  9. },
  10. disabled: true,
  11. },
  12. onLoad(options) {
  13. console.log("options", options)
  14. let type = '';
  15. if (options.type) type = options.type;
  16. let form = [{
  17. label: "经销商",
  18. error: false,
  19. errMsg: "",
  20. type: "route",
  21. url: "/prsx/select/firm/index",
  22. value: "",
  23. params: {
  24. id: 2025102416055302,
  25. "content": {
  26. "pageSize": 20,
  27. "pageNumber": 1,
  28. sa_customersid: 0
  29. },
  30. },
  31. query: "&radio=true",
  32. placeholder: "选择经销商",
  33. valueName: "sa_agentsid",
  34. checking: "base",
  35. required: options.type == '经销商协议',
  36. interrupt: options.type == '经销商协议',
  37. disabled: options.type == '医院协议'
  38. }, {
  39. label: "签约日期",
  40. error: false,
  41. errMsg: "",
  42. type: "date",
  43. start: '',
  44. value: '',
  45. placeholder: "签约日期",
  46. valueName: "signdate",
  47. checking: "base",
  48. required: true,
  49. }, {
  50. label: "生效日期",
  51. error: false,
  52. errMsg: "",
  53. type: "date",
  54. start: '',
  55. value: '',
  56. placeholder: "生效日期",
  57. valueName: "begdate",
  58. checking: "base",
  59. required: true,
  60. }, {
  61. label: "截止日期",
  62. error: false,
  63. errMsg: "",
  64. type: "date",
  65. start: '',
  66. value: '',
  67. placeholder: "截止日期",
  68. valueName: "enddate",
  69. checking: "base",
  70. required: true,
  71. },
  72. // {
  73. // label: "履约保证金",
  74. // error: false,
  75. // errMsg: "",
  76. // type: "option",
  77. // optionNmae: "contractbond",
  78. // optionType: "radio", //复选 radio 单选
  79. // value: "",
  80. // placeholder: "履约保证金",
  81. // valueName: "earnestmoney",
  82. // checking: "base",
  83. // required: true
  84. // }, {
  85. // label: "货款支付",
  86. // error: false,
  87. // errMsg: "",
  88. // type: "option",
  89. // optionNmae: "deliverymode",
  90. // optionType: "radio", //复选 radio 单选
  91. // value: "",
  92. // placeholder: "货款支付",
  93. // valueName: "payment",
  94. // checking: "base",
  95. // required: true
  96. // }, {
  97. // label: "奖励政策",
  98. // error: false,
  99. // errMsg: "",
  100. // type: "textarea",
  101. // value: "",
  102. // placeholder: "奖励政策",
  103. // valueName: "reward",
  104. // checking: "base",
  105. // required: true
  106. // },
  107. {
  108. label: "年目标手术量",
  109. error: false,
  110. errMsg: "",
  111. type: "number",
  112. value: "",
  113. placeholder: "年目标手术量",
  114. valueName: "opqty",
  115. checking: "base",
  116. required: true
  117. }, {
  118. label: "负责人",
  119. error: false,
  120. errMsg: "",
  121. type: "route",
  122. url: "/prsx/select/saler/index",
  123. value: "",
  124. placeholder: "负责人",
  125. valueName: "saler_hrid",
  126. checking: "base",
  127. required: true,
  128. params: {
  129. "content": {
  130. "pageNumber": 1,
  131. "pageSize": 20,
  132. "where": {
  133. "condition": ""
  134. }
  135. },
  136. "id": 2025061911194602,
  137. },
  138. query: "&radio=true",
  139. interrupt: true,
  140. required: true,
  141. disabled: true
  142. }, {
  143. label: "备注",
  144. error: false,
  145. errMsg: "",
  146. type: "textarea",
  147. value: "",
  148. placeholder: "备注",
  149. valueName: "remarks",
  150. checking: "base",
  151. required: false
  152. }]
  153. if (type == '医院协议') form.unshift({
  154. label: "医院",
  155. error: false,
  156. errMsg: "",
  157. type: "route",
  158. url: "/prsx/select/hospital/index",
  159. value: "",
  160. placeholder: "医院",
  161. valueName: "sa_customersid",
  162. checking: "base",
  163. required: true,
  164. params: {
  165. "content": {
  166. "isExport": 0,
  167. "pageNumber": 1,
  168. "pageSize": 20,
  169. "where": {
  170. "condition": ""
  171. }
  172. },
  173. "id": 2025102416054102,
  174. },
  175. query: "&radio=true",
  176. required: true,
  177. interrupt: true,
  178. })
  179. if (options.data) {
  180. let data = JSON.parse(options.data);
  181. console.log(data)
  182. data.sa_customersid = [data.hospitalname, [data.sa_customersid]]
  183. data.sa_agentsid = [data.agentname, [data.sa_agentsid]]
  184. data.saler_hrid = [data.leader[0].name, [data.leader[0].hr.hrid]]
  185. form = form.map(v => {
  186. v.value = data[v.valueName];
  187. if (v.label == '负责人') {
  188. v.params.sys_enterpriseid = data.sys_enterpriseid
  189. if (type != '医院协议') v.disabled = false
  190. }
  191. if (type == '医院协议' && v.label == '经销商') v.disabled = false
  192. return v
  193. })
  194. this.setData({
  195. disabled: false,
  196. content: {
  197. sa_contractid: data.sa_contractid,
  198. },
  199. form
  200. })
  201. }
  202. this.setData({
  203. form,
  204. type
  205. })
  206. getApp().globalData.Language.getLanguagePackage(this, options.data ? '编辑' + type : '新建' + type);
  207. },
  208. interrupt(e) {
  209. const {
  210. data,
  211. form,
  212. temporary
  213. } = e.detail;
  214. console.log(data, form, temporary)
  215. if (temporary.item.label == '医院') {
  216. form.find(v => v.label == '医院').value = data.value;
  217. let obj2 = form.find(v => v.label == '经销商')
  218. obj2.params.content.sa_customersid = data.id[0];
  219. obj2.value = '';
  220. obj2.disabled = false;
  221. form.find(v => v.label == '医院').value = data.value;
  222. let leader = data.item.leader[0];
  223. let obj1 = form.find(v => v.label == '负责人')
  224. obj1.value = [leader.name, ['']]
  225. wx.navigateBack()
  226. } else if (temporary.item.label == '经销商') {
  227. form.find(v => v.label == '经销商').value = data.value;
  228. let obj = form.find(v => v.label == '负责人')
  229. obj.params.content.sys_enterpriseid = data.item.sys_enterpriseid
  230. _Http.basic(obj.params).then(res => {
  231. if (res.code == 1 && res.data.length == 1) {
  232. form.find(v => v.label == '负责人').value = [res.data[0].name, [res.data[0].hrid]];
  233. this.setData({
  234. form
  235. })
  236. }
  237. })
  238. obj.disabled = false;
  239. wx.navigateBack()
  240. } else if (temporary.item.label == '负责人') {
  241. data.value[1][0] = data.item.hrid;
  242. form.find(v => v.label == '负责人').value = data.value;
  243. wx.navigateBack()
  244. }
  245. this.selectComponent("#Form").confirm();
  246. this.setData({
  247. form
  248. })
  249. },
  250. /* 表单必填项是否完成 */
  251. onConfirm({
  252. detail
  253. }) {
  254. this.setData({
  255. disabled: detail
  256. })
  257. },
  258. // 是否显示全部
  259. onChange({
  260. detail
  261. }) {
  262. this.setData({
  263. showAll: detail
  264. })
  265. },
  266. async submit() {
  267. this.setData({
  268. loading: true
  269. })
  270. let data = this.selectComponent("#Form").submit(),
  271. content = this.data.content,
  272. that = this;
  273. data.sa_agentsid = data.sa_agentsid.length ? data.sa_agentsid[1][0] : 0
  274. data.saler_hrid = data.saler_hrid.length ? data.saler_hrid[1][0] : 0
  275. try {
  276. data.sa_customersid = data.sa_customersid.length ? data.sa_customersid[1][0] : 0
  277. } catch (error) {
  278. }
  279. if (this.data.type == '医院协议') {
  280. _Http.basic({
  281. "id": 2025102416540802,
  282. "content": {
  283. ...content,
  284. ...data,
  285. }
  286. }).then(res => {
  287. console.log("查询有无重复", res)
  288. this.setData({
  289. loading: false
  290. })
  291. if (res.msg == "该合同已存在") {
  292. wx.showModal({
  293. content: '该医院存在有效期相同的医院协议,是否确定继续创建?',
  294. confirmText: "确定创建",
  295. complete: (res) => {
  296. if (res.confirm) {
  297. that.setData({
  298. loading: true
  299. })
  300. handle()
  301. }
  302. }
  303. })
  304. } else {
  305. this.setData({
  306. loading: true
  307. })
  308. handle()
  309. }
  310. })
  311. } else {
  312. handle()
  313. }
  314. function handle() {
  315. _Http.basic({
  316. "id": 20221121185302,
  317. "content": {
  318. ...content,
  319. ...data,
  320. }
  321. }).then(res => {
  322. that.setData({
  323. loading: false
  324. })
  325. wx.showToast({
  326. title: res.code != '1' ? res.msg : '保存成功',
  327. icon: "none",
  328. mask: res.code == '1'
  329. })
  330. if (res.code != '1') return;
  331. getCurrentPages().forEach(v => {
  332. if (v.route == 'prsx/contract/detail') v.getDetail()
  333. })
  334. setTimeout(() => {
  335. if (content.sa_contractid == 0) {
  336. wx.redirectTo({
  337. url: '/prsx/contract/detail?id=' + res.data.sa_contractid,
  338. })
  339. } else {
  340. wx.navigateBack()
  341. }
  342. }, 300)
  343. })
  344. }
  345. },
  346. })