insert.js 11 KB

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