addContract.vue 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282
  1. <template>
  2. <div>
  3. <!-- <p class="normal-title normal-panel" style="line-height:32px;padding-left:16px;border-bottom:1px solid #eeeeee">新建合同</p> -->
  4. <div>
  5. <p class="normal-title normal-panel" style="border-bottom:1px solid #cccccc;padding:16px">新建{{$route.query.type == '框架' ? '经销商合作' :$route.query.type == '直销'?'直销客户合作': $route.query.type}}合同</p>
  6. <div class="container normal-panel" style="padding-bottom:0">
  7. <!--合作协议-->
  8. <el-row v-if="$route.query.type == '框架'">
  9. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
  10. <el-col :span="24">
  11. <el-form-item label="合同标题:" prop="title">
  12. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="24">
  16. <el-form-item label="经销商:" prop="enterprisename" >
  17. <el-popover
  18. placement="bottom"
  19. trigger="manual"
  20. v-model="agentVisible"
  21. width="500">
  22. <selectAgent type="21" ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
  23. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename" placeholder="请选择合作伙伴"></el-input>
  24. </el-popover>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="24">
  28. <el-form-item label="业务员:" prop="salername">
  29. <el-popover
  30. placement="bottom"
  31. trigger="manual"
  32. v-model="salesmanVisible"
  33. width="500">
  34. <!-- <selectAgent type="5" ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>-->
  35. <selectSalesman type="1" ref="selectSalesman" :sys_enterpriseid="form.sys_enterpriseid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  36. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员"></el-input>
  37. </el-popover>
  38. </el-form-item>
  39. </el-col>
  40. <!-- <el-col :span="24">
  41. <el-form-item label="业务员:" prop="">
  42. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  43. </el-form-item>
  44. </el-col>-->
  45. <el-col :span="24">
  46. <el-form-item label="折扣(%):" prop="discountrate" >
  47. <el-input size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
  48. </el-form-item>
  49. </el-col>
  50. <el-col :span="24">
  51. <el-form-item label="付款条件:" prop="paytype">
  52. <el-select v-model="form.paytype" placeholder="请选择">
  53. <el-option
  54. v-for="item in payTypeData"
  55. :key="item.value"
  56. :label="item.label"
  57. :value="item.value">
  58. </el-option>
  59. </el-select>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :span="24">
  63. <el-form-item label="发货日期提醒(天):" prop="reminddays" >
  64. <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="24">
  68. <el-form-item label="合同有效期:" prop="begdate">
  69. <el-input style="display:none;width: 100%" v-model="form.begdate" ></el-input>
  70. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="24">
  74. <el-form-item label="签约日期:" prop="signdate">
  75. <el-date-picker
  76. v-model="form.signdate"
  77. style="width: 100%"
  78. type="date"
  79. value-format="yyyy-MM-dd"
  80. placeholder="选择日期">
  81. </el-date-picker>
  82. </el-form-item>
  83. </el-col>
  84. <el-col :span="24">
  85. <el-form-item label="合同模板:" prop="type">
  86. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  87. </el-form-item>
  88. </el-col>
  89. <el-col :span="24">
  90. <el-form-item label="合同描述:" prop="remarks">
  91. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  92. </el-form-item>
  93. </el-col>
  94. </el-form>
  95. </el-row>
  96. <!--直销客户-->
  97. <el-row v-if="$route.query.type == '直销'">
  98. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
  99. <el-col :span="24">
  100. <el-form-item label="合同标题:" prop="title">
  101. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  102. </el-form-item>
  103. </el-col>
  104. <el-col :span="24">
  105. <el-form-item label="客户:" prop="enterprisename">
  106. <el-popover
  107. placement="bottom"
  108. trigger="manual"
  109. v-model="agentVisible"
  110. width="500">
  111. <selectAgent type="18" ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
  112. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename" placeholder="请选择客户"></el-input>
  113. </el-popover>
  114. </el-form-item>
  115. </el-col>
  116. <!-- <el-col :span="24">
  117. <el-form-item label="项目名称:" prop="projectname">
  118. <el-popover
  119. placement="bottom"
  120. trigger="manual"
  121. v-model="projectVisible"
  122. width="600">
  123. <seleteProject ref="project" type="2" :sys_enterpriseid='form.sys_enterpriseid' @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
  124. <el-input readonly type="text" slot="reference" size="small" v-model="form.projectname" @focus="showChange('projectVisible')" placeholder="请选择项目"></el-input>
  125. </el-popover>
  126. </el-form-item>
  127. </el-col>-->
  128. <!-- <el-col :span="24">
  129. <el-form-item label="项目编号:" prop="">
  130. <el-input disabled type="text" size="small" v-model="form.projectnum" placeholder="请选择项目"></el-input>
  131. </el-form-item>
  132. </el-col>-->
  133. <el-col :span="24">
  134. <el-form-item label="业务员:" prop="salername">
  135. <el-popover
  136. placement="bottom"
  137. trigger="manual"
  138. v-model="salesmanVisible"
  139. width="500">
  140. <selectSalesman type="2" ref="selectSalesman" :sa_projectid="form.sa_projectid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  141. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员" disabled></el-input>
  142. </el-popover>
  143. </el-form-item>
  144. </el-col>
  145. <el-col :span="24">
  146. <el-form-item label="折扣(%):" prop="discountrate" >
  147. <el-input size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
  148. </el-form-item>
  149. </el-col>
  150. <el-col :span="24">
  151. <el-form-item label="付款条件:" prop="paytype">
  152. <el-select v-model="form.paytype" placeholder="请选择">
  153. <el-option
  154. v-for="item in payTypeData"
  155. :key="item.value"
  156. :label="item.label"
  157. :value="item.value">
  158. </el-option>
  159. </el-select>
  160. </el-form-item>
  161. </el-col>
  162. <el-col :span="24">
  163. <el-form-item label="发货日期提醒(天):" prop="reminddays" >
  164. <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="24">
  168. <el-form-item label="合同有效期:" prop="begdate">
  169. <input type="text" style="display:none" v-model="form.begdate" >
  170. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  171. </el-form-item>
  172. </el-col>
  173. <el-col :span="24">
  174. <el-form-item label="签约日期:" prop="signdate">
  175. <el-date-picker
  176. v-model="form.signdate"
  177. style="width: 100%"
  178. type="date"
  179. value-format="yyyy-MM-dd"
  180. placeholder="选择日期">
  181. </el-date-picker>
  182. </el-form-item>
  183. </el-col>
  184. <!-- <el-col :span="24">
  185. <el-form-item label="签约金额(元):" prop="signamount">
  186. <el-input type="text" size="small" placeholder="系统自动计算" disabled v-model="form.signamount"></el-input>
  187. </el-form-item>
  188. </el-col>
  189. <el-col :span="24">
  190. <el-form-item label="合同模板:" prop="type">
  191. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  192. </el-form-item>
  193. </el-col>-->
  194. <el-col :span="24">
  195. <el-form-item label="合同描述:" prop="hrid">
  196. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  197. </el-form-item>
  198. </el-col>
  199. </el-form>
  200. </el-row>
  201. <!--经销项目-->
  202. <el-row v-if="$route.query.type == '经销项目'">
  203. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
  204. <el-col :span="24">
  205. <el-form-item label="合同标题:" prop="title">
  206. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  207. </el-form-item>
  208. </el-col>
  209. <el-col :span="24">
  210. <el-form-item label="经销商:" prop="enterprisename">
  211. <el-popover
  212. placement="bottom"
  213. trigger="manual"
  214. v-model="agentVisible"
  215. width="500">
  216. <selectAgent type="21" ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
  217. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename" placeholder="请选择合作伙伴"></el-input>
  218. </el-popover>
  219. </el-form-item>
  220. </el-col>
  221. <el-col :span="24">
  222. <el-form-item label="项目名称:" prop="projectname">
  223. <el-popover
  224. placement="bottom"
  225. trigger="manual"
  226. v-model="projectVisible"
  227. width="600">
  228. <seleteProject ref="project" type="2" :sys_enterpriseid='form.sys_enterpriseid' @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
  229. <el-input readonly type="text" slot="reference" size="small" v-model="form.projectname" @focus="showChange('projectVisible')" placeholder="请选择项目"></el-input>
  230. </el-popover>
  231. </el-form-item>
  232. </el-col>
  233. <el-col :span="24">
  234. <el-form-item label="项目编号:" prop="">
  235. <el-input disabled type="text" size="small" v-model="form.projectnum" placeholder="请选择项目"></el-input>
  236. </el-form-item>
  237. </el-col>
  238. <el-col :span="24">
  239. <el-form-item label="业务员:" prop="salername">
  240. <el-popover
  241. placement="bottom"
  242. trigger="manual"
  243. v-model="salesmanVisible"
  244. width="500">
  245. <selectSalesman type="2" ref="selectSalesman" :sa_projectid="form.sa_projectid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  246. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员"></el-input>
  247. </el-popover>
  248. </el-form-item>
  249. </el-col>
  250. <el-col :span="24">
  251. <el-form-item label="折扣(%):" prop="discountrate" >
  252. <el-input size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
  253. </el-form-item>
  254. </el-col>
  255. <el-col :span="24">
  256. <el-form-item label="付款条件:" prop="paytype">
  257. <el-select v-model="form.paytype" placeholder="请选择">
  258. <el-option
  259. v-for="item in payTypeData"
  260. :key="item.value"
  261. :label="item.label"
  262. :value="item.value">
  263. </el-option>
  264. </el-select>
  265. </el-form-item>
  266. </el-col>
  267. <el-col :span="24">
  268. <el-form-item label="发货日期提醒(天):" prop="reminddays" >
  269. <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
  270. </el-form-item>
  271. </el-col>
  272. <el-col :span="24">
  273. <el-form-item label="合同有效期:" prop="begdate">
  274. <input type="text" style="display:none" v-model="form.begdate">
  275. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  276. </el-form-item>
  277. </el-col>
  278. <el-col :span="24">
  279. <el-form-item label="签约日期:" prop="signdate">
  280. <el-date-picker
  281. v-model="form.signdate"
  282. style="width: 100%"
  283. type="date"
  284. value-format="yyyy-MM-dd"
  285. placeholder="选择日期">
  286. </el-date-picker>
  287. </el-form-item>
  288. </el-col>
  289. <el-col :span="24">
  290. <el-form-item label="签约金额(元):" prop="signamount">
  291. <el-input type="text" size="small" placeholder="系统自动计算" disabled v-model="form.signamount"></el-input>
  292. </el-form-item>
  293. </el-col>
  294. <el-col :span="24">
  295. <el-form-item label="合同模板:" prop="type">
  296. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  297. </el-form-item>
  298. </el-col>
  299. <el-col :span="24">
  300. <el-form-item label="合同描述:" prop="hrid">
  301. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  302. </el-form-item>
  303. </el-col>
  304. </el-form>
  305. </el-row>
  306. <!--直销项目-->
  307. <el-row v-if="$route.query.type == '直销项目'">
  308. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
  309. <el-col :span="24">
  310. <el-form-item label="合同标题:" prop="title">
  311. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  312. </el-form-item>
  313. </el-col>
  314. <el-col :span="24">
  315. <el-form-item label="客户:" prop="sys_enterpriseid">
  316. <el-popover
  317. placement="bottom"
  318. trigger="manual"
  319. v-model="accountVisible"
  320. width="500">
  321. <selectAgent type="18" ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
  322. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('accountVisible')" v-model="form.enterprisename" placeholder="请选择客户"></el-input>
  323. </el-popover>
  324. </el-form-item>
  325. </el-col>
  326. <el-col :span="24">
  327. <el-form-item label="项目名称:" prop="projectname">
  328. <el-popover
  329. placement="bottom"
  330. trigger="manual"
  331. v-model="projectVisible"
  332. width="600">
  333. <seleteProject ref="project" type="1" @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
  334. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('projectVisible')" v-model="form.projectname" placeholder="请选择项目"></el-input>
  335. </el-popover>
  336. </el-form-item>
  337. </el-col>
  338. <el-col :span="24">
  339. <el-form-item label="项目编号:" prop="">
  340. <el-input disabled type="text" size="small" v-model="form.projectnum" placeholder="请选择项目"></el-input>
  341. </el-form-item>
  342. </el-col>
  343. <!-- <el-col :span="24">
  344. <el-form-item label="项目地址:" prop="address">
  345. <el-input disabled type="text" size="small" v-model="address" placeholder="请选择项目地址"></el-input>
  346. </el-form-item>
  347. </el-col>-->
  348. <el-col :span="24">
  349. <el-form-item label="业务员:" prop="salername">
  350. <el-popover
  351. placement="bottom"
  352. trigger="manual"
  353. v-model="salesmanVisible"
  354. width="500">
  355. <selectSalesman type="2" ref="selectSalesman" :sa_projectid="form.sa_projectid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  356. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员"></el-input>
  357. </el-popover>
  358. </el-form-item>
  359. </el-col>
  360. <el-col :span="24">
  361. <el-form-item label="折扣(%):" prop="discountrate" >
  362. <el-input size="small" v-model="form.discountrate" placeholder="请输入0-100%" @change="discountrateChange"></el-input>
  363. </el-form-item>
  364. </el-col>
  365. <el-col :span="24">
  366. <el-form-item label="付款条件:" prop="paytype">
  367. <el-select v-model="form.paytype" placeholder="请选择">
  368. <el-option
  369. v-for="item in payTypeData"
  370. :key="item.value"
  371. :label="item.label"
  372. :value="item.value">
  373. </el-option>
  374. </el-select>
  375. </el-form-item>
  376. </el-col>
  377. <el-col :span="24">
  378. <el-form-item label="发货日期提醒(天):" prop="reminddays" >
  379. <el-input type="text" size="small" v-model="form.reminddays" placeholder="请输入发货日期提醒天数"></el-input>
  380. </el-form-item>
  381. </el-col>
  382. <!-- <el-col :span="24">
  383. <el-form-item label="收货人:" prop="receiptName">
  384. <el-popover
  385. placement="bottom"
  386. trigger="manual"
  387. v-model="receiptVisible"
  388. width="600">
  389. <seleteReceipt ref="receipt" type="1" @onSelect="receiptChange" @onCanel="receiptVisible = false"></seleteReceipt>
  390. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('receiptVisible')" v-model="form.receiptName"></el-input>
  391. </el-popover>
  392. </el-form-item>
  393. </el-col>
  394. <el-col :span="24">
  395. <el-form-item label="收货人电话:" prop="phonenumber">
  396. <el-input disabled type="text" size="small" v-model="form.phonenumber"></el-input>
  397. </el-form-item>
  398. </el-col>-->
  399. <el-col :span="24">
  400. <el-form-item label="合同有效期:" prop="begdate">
  401. <input type="text" style="display:none" v-model="form.begdate">
  402. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  403. </el-form-item>
  404. </el-col>
  405. <el-col :span="24">
  406. <el-form-item label="签约日期:" prop="signdate">
  407. <el-date-picker
  408. v-model="form.signdate"
  409. style="width: 100%"
  410. value-format="yyyy-MM-dd"
  411. type="date"
  412. placeholder="选择日期">
  413. </el-date-picker>
  414. </el-form-item>
  415. </el-col>
  416. <el-col :span="24">
  417. <el-form-item label="签约金额(元):" prop="signamount">
  418. <el-input type="text" placeholder="系统自动计算" disabled size="small" v-model="form.signamount"></el-input>
  419. </el-form-item>
  420. </el-col>
  421. <el-col :span="24">
  422. <el-form-item label="合同模板:" prop="type">
  423. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  424. </el-form-item>
  425. </el-col>
  426. <el-col :span="24">
  427. <el-form-item label="合同描述:" prop="hrid">
  428. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  429. </el-form-item>
  430. </el-col>
  431. </el-form>
  432. </el-row>
  433. <!--工具使用协议-->
  434. <el-row v-if="$route.query.type == '工具借用'">
  435. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="140px" size="small">
  436. <el-col :span="24">
  437. <el-form-item label="合同标题:" prop="title">
  438. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  439. </el-form-item>
  440. </el-col>
  441. <el-col :span="24">
  442. <el-form-item label="企业:" prop="enterprisename">
  443. <el-popover
  444. placement="bottom"
  445. trigger="manual"
  446. v-model="accountVisible"
  447. width="600">
  448. <el-tabs v-model="activeName" @tab-click="tabClick">
  449. <el-tab-pane label="客户" name="客户">
  450. <selectAgent ref="member" type="19" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
  451. </el-tab-pane>
  452. <el-tab-pane label="合作伙伴" name="合作伙伴">
  453. <selectAgent ref="member" type="20" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
  454. </el-tab-pane>
  455. </el-tabs>
  456. <!-- <selectAgent ref="member" type="10" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>-->
  457. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('accountVisible')" v-model="form.enterprisename" placeholder="请选择企业"></el-input>
  458. </el-popover>
  459. </el-form-item>
  460. </el-col>
  461. <el-col :span="24">
  462. <el-form-item label="业务员:" prop="salername">
  463. <el-popover
  464. placement="bottom"
  465. trigger="manual"
  466. v-model="salesmanVisible"
  467. width="500">
  468. <selectSalesman type="1" ref="selectSalesman" :sys_enterpriseid="form.sys_enterpriseid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  469. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员"></el-input>
  470. </el-popover>
  471. </el-form-item>
  472. </el-col>
  473. <el-col :span="24">
  474. <el-form-item label="合同有效期:" prop="begdate">
  475. <input type="text" style="display:none" v-model="form.begdate">
  476. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  477. </el-form-item>
  478. </el-col>
  479. <el-col :span="24">
  480. <el-form-item label="签约日期:" prop="signdate">
  481. <el-date-picker
  482. v-model="form.signdate"
  483. style="width: 100%"
  484. value-format="yyyy-MM-dd"
  485. type="date"
  486. placeholder="选择日期">
  487. </el-date-picker>
  488. </el-form-item>
  489. </el-col>
  490. <el-col :span="24">
  491. <el-form-item label="单套价格(元):" prop="signamount">
  492. <el-input type="text" disabled size="small" placeholder="系统自动计算" v-model="form.signamount"></el-input>
  493. </el-form-item>
  494. </el-col>
  495. <el-col :span="24">
  496. <el-form-item label="合同模板:" prop="type">
  497. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  498. </el-form-item>
  499. </el-col>
  500. <el-col :span="24">
  501. <el-form-item label="合同描述:" prop="hrid">
  502. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  503. </el-form-item>
  504. </el-col>
  505. </el-form>
  506. </el-row>
  507. <!--居间协议-->
  508. <el-row v-if="$route.query.type == '居间'">
  509. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="135px" size="small">
  510. <el-col :span="24">
  511. <el-form-item label="合同标题:" prop="title">
  512. <el-input type="text" size="small" v-model="form.title" placeholder="请输入合同标题"></el-input>
  513. </el-form-item>
  514. </el-col>
  515. <el-col :span="24">
  516. <el-form-item label="居间商:" :rules="{ required: false, message: '请选择居间商', trigger: 'change' }">
  517. <el-popover
  518. placement="bottom"
  519. trigger="manual"
  520. v-model="agentVisible"
  521. width="500">
  522. <selectAgent ref="member" type="22" :param="agentListPrams" :radio="true" @onSelect="centerChange" @onCancel="agentVisible = false"></selectAgent>
  523. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename" placeholder="请选择居间商" >
  524. <template slot="append">
  525. <el-button size="small" @click="agentVisible = false;form.enterprisename = '';agentListPrams.content.where.condition = '';$refs.member.selected = []" style="width:100%" type="primary">清空</el-button>
  526. </template>
  527. </el-input>
  528. </el-popover>
  529. </el-form-item>
  530. </el-col>
  531. <el-col :span="24">
  532. <el-form-item label="合同:" prop="ascription_title" :rules="{ required: true, message: '请选择合同', trigger: 'change' }">
  533. <el-popover
  534. placement="left"
  535. trigger="focus"
  536. v-model="contractVisible"
  537. width="700">
  538. <selectContract ref="contractRef" @onSelect="concratChange" @onCanel="contractVisible=false" ></selectContract>
  539. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('contractVisible')" v-model="form.ascription_title" placeholder="请选择合同"></el-input>
  540. </el-popover>
  541. </el-form-item>
  542. </el-col>
  543. <el-col :span="24">
  544. <el-form-item label="项目名称:" prop="projectnum">
  545. <el-input disabled type="text" size="small" v-model="form.projectname" placeholder="请选择项目"></el-input>
  546. </el-form-item>
  547. </el-col>
  548. <el-col :span="24">
  549. <el-form-item label="项目编号:" prop="projectnum">
  550. <el-input disabled type="text" size="small" v-model="form.projectnum" placeholder="项目编号"></el-input>
  551. </el-form-item>
  552. </el-col>
  553. <el-col :span="24">
  554. <el-form-item label="客户名称:" :rules="{ required: false, message: '请选择客户', trigger: 'change,blur' }">
  555. <el-input disabled type="text" size="small" v-model="form.customername" placeholder="客户名称"></el-input>
  556. </el-form-item>
  557. </el-col>
  558. <el-col :span="24">
  559. <el-form-item label="业务员:" prop="salername">
  560. <el-popover
  561. placement="bottom"
  562. trigger="manual"
  563. v-model="salesmanVisible"
  564. width="500">
  565. <selectSalesman type="2" ref="selectSalesman" :sa_projectid="form.sa_projectid" :radio="true" @onSelect="salesmanChange" @onCancel="salesmanVisible = false"></selectSalesman>
  566. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('salesmanVisible')" v-model="form.salername" placeholder="请选择业务员"></el-input>
  567. </el-popover>
  568. </el-form-item>
  569. </el-col>
  570. <el-col :span="24">
  571. <el-form-item label="签约日期:" prop="signdate">
  572. <el-date-picker
  573. v-model="form.signdate"
  574. value-format="yyyy-MM-dd"
  575. type="date"
  576. placeholder="选择日期">
  577. </el-date-picker>
  578. </el-form-item>
  579. </el-col>
  580. <el-col :span="24">
  581. <el-form-item label="计算方式:" prop="calculatemodel">
  582. <el-radio-group v-model="form.calculatemodel">
  583. <el-radio label="1">按订单金额比例计算</el-radio>
  584. <el-radio label="2">按居间产品折扣计算</el-radio>
  585. </el-radio-group>
  586. </el-form-item>
  587. </el-col>
  588. <el-col :span="24" v-if="form.calculatemodel==1">
  589. <el-form-item label="订单金额比例(%):" prop="orderratio" >
  590. <el-input size="small" v-model="form.orderratio" placeholder="请输入0-100%" @change="orderratioChange"></el-input>
  591. </el-form-item>
  592. </el-col>
  593. <el-col :span="24" v-if="form.calculatemodel==2">
  594. <el-form-item label="居间产品折扣(%):" prop="productdiscount">
  595. <el-input size="small" v-model="form.productdiscount" placeholder="请输入0-100%" @change="productdiscountChange"></el-input>
  596. </el-form-item>
  597. </el-col>
  598. <el-col :span="24">
  599. <el-form-item label="合同有效期:" prop="begdate">
  600. <input type="text" style="display:none" v-model="form.begdate">
  601. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange" style="width: 100%"></time-select>
  602. </el-form-item>
  603. </el-col>
  604. <el-col :span="24">
  605. <el-form-item label="合同模板:" prop="type">
  606. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  607. </el-form-item>
  608. </el-col>
  609. <el-col :span="24">
  610. <el-form-item label="合同描述:" prop="hrid">
  611. <el-input type="textarea" size="small" v-model="form.remarks" placeholder="请输入描述信息" clearable></el-input>
  612. </el-form-item>
  613. </el-col>
  614. </el-form>
  615. </el-row>
  616. </div>
  617. </div>
  618. <div class="fixed__btn__panel">
  619. <el-button size="small" @click="onCancel" class="normal-btn-width">取 消</el-button>
  620. <el-button size="small" type="primary" @click="onSubmit" :loading="loading" class="normal-btn-width">确 定</el-button>
  621. </div>
  622. </div>
  623. </template>
  624. <script>
  625. import {mapGetters} from 'vuex'
  626. import selectPople from './selectSaler'
  627. import selectAgent from './selectAgent.vue'
  628. import seleteProject from './seleteProject'
  629. import seleteProjectContract from './seleteProjectContract'
  630. import selectContract from "@/HDrpManagement/contractManage/components/selectContract";
  631. import TimeSelect from './TimeSelect'
  632. import selectModel from './seleteModel'
  633. import seleteReceipt from './seleteReceipt'
  634. import selectSalesman from './selectSalesman'
  635. export default {
  636. name: '',
  637. components:{selectPople,TimeSelect,seleteProject,selectAgent,selectModel,seleteProjectContract,seleteReceipt,selectSalesman,selectContract},
  638. data () {
  639. var checkNumber = (rule, value, callback) => {
  640. if (typeof +value != 'number') {
  641. return callback(new Error('请填写数字'));
  642. }
  643. callback()
  644. }
  645. var NumberSize = (rule, value, callback) => {
  646. if (isNaN(parseFloat(value)) && value !== ''){
  647. return callback(new Error('输入不合法,请输入数值'))
  648. }else if (+value > 100 || +value < 0 ) {
  649. return callback(new Error('折扣范围(0-100%)'));
  650. }
  651. callback()
  652. }
  653. var checkTimer = (rule, value, callback) => {
  654. if (new Date(this.form.enddate).getTime() > new Date(value).getTime() && new Date(this.form.begdate).getTime() < new Date(value).getTime()) {
  655. callback()
  656. } {
  657. return callback(new Error('签约日期必须在合同有效期内'));
  658. }
  659. }
  660. var discountrate = (rule,value,callback) =>{
  661. if (this.form.discountrate < 0 || this.form.discountrate > 100){
  662. callback(new Error('请输入0-100%'))
  663. } else {
  664. callback();
  665. }
  666. }
  667. return {
  668. activeName: '客户',
  669. agentVisible:false,
  670. salerVisible:false,
  671. projectVisible:false,
  672. accountVisible:false,
  673. modelVisible:false,
  674. contractVisible:false,
  675. receiptVisible:false,
  676. salesmanVisible:false,
  677. modelList:[],
  678. /* 新建居间项目时 所关联的居间商 */
  679. centerEnterpriseList:[],
  680. payTypeData:[],
  681. address:'',
  682. form: {
  683. "sa_contractid": 0,
  684. "sys_enterpriseid": "",
  685. "projectname":'',
  686. "projectnum":'',
  687. "begdate": "",
  688. "enddate": "",
  689. "sa_projectid": "", //可选
  690. "type": "", //可选
  691. "discountrate": '', //可选
  692. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  693. "saler_hrid":'',
  694. "signdate": "", //可选
  695. "signby": "", //可选
  696. "remarks": "", //可选
  697. "title": "",
  698. "signamount":'',
  699. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  700. "salername":'',
  701. "enterprisename":'',
  702. "sys_printmodelid": '',//可选
  703. "typemx":"",//可选
  704. "modelname":"",
  705. "calculatemodel":'1',
  706. "productdiscount":'',
  707. "orderratio":'',
  708. "ascription_title":'',
  709. 'ascription_contractid':'',
  710. 'receiptName':'',
  711. "rec_contactsid":'',//收货联系人
  712. 'phonenumber':'',
  713. 'paytype':'',
  714. 'reminddays':'',
  715. 'customername':'',
  716. 'customerid':''
  717. },
  718. rules: {
  719. title: [
  720. { required: true, message: '请填写标题', trigger: 'blur' },
  721. ],
  722. sys_enterpriseid: [
  723. { required: true, message: '请选择客户', trigger: 'change' },
  724. ],
  725. ascription_title: [
  726. { required: true, message: '请选择项目合同', trigger: 'change' },
  727. ],
  728. begdate: [
  729. { required: true, message: '请选择生效日期', trigger: 'blur' },
  730. ],
  731. projectname: [
  732. { required: true, message: '请选择项目', trigger: 'change' },
  733. ],
  734. receiptName: [
  735. { required: true, message: '请选择收货人', trigger: 'change' },
  736. ],
  737. salername: [
  738. { required: true, message: '请选择业务员', trigger: 'change' },
  739. ],
  740. enterprisename: [
  741. { required: true, message: '请选择合作伙伴', trigger: 'change' },
  742. ],
  743. signdate: [
  744. { required: true, message: '请填写签约时间', trigger: 'change' },
  745. ],
  746. paytype: [
  747. { required: true, message: '请选择付款条件', trigger: 'change' },
  748. ],
  749. reminddays: [
  750. { required: true, message: '请设置发货日期提醒天数', trigger: 'blur' },
  751. ],
  752. productdiscount: [
  753. /* { message: '必须为数字', type:'number', trigger: 'change' },*/
  754. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
  755. { required: true, message: '请填写折扣', trigger: 'blur' },
  756. /* { validator: checkNumber, trigger: 'blur'},*/
  757. { validator: NumberSize, trigger: 'blur'}
  758. ],
  759. orderratio: [
  760. /* { message: '必须为数字', type:'number', trigger: 'change' },*/
  761. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
  762. { required: true, message: '请填写折扣', trigger: 'blur' },
  763. /* { validator: checkNumber, trigger: 'blur'},*/
  764. { validator: NumberSize, trigger: 'blur'}
  765. ],
  766. salername: [
  767. { required: true, message: '请选择合作伙伴', trigger: 'change' },
  768. ],
  769. discountrate: [
  770. /* { validator: checkNumber, trigger: 'blur'},*/
  771. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
  772. { validator: NumberSize, trigger: 'blur'}
  773. ],
  774. },
  775. salerListParams: {
  776. "id": 20221122153902,
  777. "content": {
  778. "pageNumber": 1,
  779. "pageSize": 20,
  780. "where": {
  781. "condition": ""
  782. }
  783. },
  784. },
  785. agentListPrams: {
  786. "id": 20220920083901,
  787. "content": {
  788. "pageNumber": 1,
  789. "pageSize": 20,
  790. "where": {
  791. "condition": "",
  792. "type":5,
  793. "typemx":"",
  794. }
  795. }
  796. },
  797. salsemanParam:{
  798. "id":20230305201202,
  799. "content":{
  800. "type":'',//type:1经销商合作协议,2:经销项目协议,直销项目协议,居间协议,3:工具借用协议
  801. "sys_enterpriseid":'',//type=1或3时传
  802. "sa_projectid":'' //type=2时传
  803. }
  804. }
  805. };
  806. },
  807. computed: {
  808. ...mapGetters({
  809. DrawerShow:'DrawerShow',
  810. loading:'loading'
  811. })
  812. },
  813. watch: {
  814. 'DrawerShow': {
  815. handler (val) {
  816. if (!val) {
  817. this.showChange(false)
  818. if (this.$refs.form) this.$refs.form.resetFields()
  819. this.onCancel()
  820. this.$refs.timeSelect.time = ''
  821. } else {
  822. if(this.$refs.member) this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  823. if(this.$refs.project) {
  824. this.$refs.project.params.content.type = this.$route.query.type == '经销项目' ? '2' : '1'
  825. console.log(this.$refs.project.params.content.type,'项目类型');
  826. this.$refs.project.queryEnterpriseArchives()
  827. }
  828. }
  829. },
  830. immediate:true,
  831. },
  832. },
  833. created () {
  834. this.form = {
  835. "sa_contractid": 0,
  836. "sys_enterpriseid": "",
  837. "projectname":'',
  838. "projectnum":'',
  839. "begdate": "",
  840. "enddate": "",
  841. "sa_projectid": "", //可选
  842. "type": "", //可选
  843. "discountrate": '', //可选
  844. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  845. "saler_hrid":"",
  846. "signdate": "", //可选
  847. "signby": "", //可选
  848. "remarks": "", //可选
  849. "title": "",
  850. "signamount":'',
  851. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  852. "salername":"",
  853. "enterprisename":'',
  854. "sys_printmodelid": '',//可选
  855. "typemx":"",//可选
  856. "modelname":"",
  857. "calculatemodel":'1',
  858. "productdiscount":'',
  859. "orderratio":'',
  860. "ascription_title":'',
  861. 'ascription_contractid':'',
  862. 'receiptName':'',
  863. "rec_contactsid":'',//收货联系人
  864. 'phonenumber':'',
  865. 'paytype':'',
  866. 'reminddays':'',
  867. 'customername':'',
  868. 'customerid':''
  869. }
  870. this.payTypeList()
  871. },
  872. methods: {
  873. async onSubmit () {
  874. this.$refs.form.validate(async val => {
  875. if (!val) return false
  876. console.log(this.form,'form')
  877. if (val) {
  878. this.$store.commit('setLoading',true)
  879. /* 居间新建 */
  880. if (this.$route.query.type == '居间' && this.centerEnterpriseList) {
  881. let is = this.centerEnterpriseList.some(item => item.sys_enterpriseid == this.form.sys_enterpriseid)
  882. if (is) {
  883. this.$confirm('该项目商机已存在居间服务商,不可创建','提示',{
  884. cancelButtonText:'取消',
  885. showConfirmButton:false
  886. }).then(() => {
  887. this.$store.commit('setLoading',false)
  888. })
  889. } else {
  890. if (this.$route.query.type == '直销项目') {
  891. this.form.type = '项目'
  892. this.form.typemx = '直销'
  893. } else if (this.$route.query.type == '经销项目') {
  894. this.form.type = '项目'
  895. this.form.typemx = '经销'
  896. } else {
  897. this.form.type = this.$route.query.type
  898. }
  899. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  900. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  901. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  902. let res = await this.$api.requested({
  903. "id":20221121185302,
  904. "content": this.form
  905. })
  906. if (res.code == 0){
  907. this.form.discountrate = this.form.discountrate * 100
  908. this.form.productdiscount = this.form.productdiscount * 100
  909. this.form.orderratio = this.form.orderratio * 100
  910. }
  911. this.tool.showMessage(res,() => {
  912. this.$store.commit('setLoading',false)
  913. this.$store.dispatch('DrawerShowChange',false)
  914. this.$store.dispatch('changeDetailDrawer',true)
  915. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  916. })
  917. }
  918. } else {
  919. /* 其它新建 */
  920. if (this.$route.query.type == '直销项目') {
  921. this.form.type = '项目'
  922. this.form.typemx = '直销'
  923. } else if (this.$route.query.type == '经销项目') {
  924. this.form.type = '项目'
  925. this.form.typemx = '经销'
  926. } else {
  927. this.form.type = this.$route.query.type
  928. }
  929. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  930. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  931. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  932. let res = await this.$api.requested({
  933. "id":20221121185302,
  934. "content": this.form
  935. })
  936. if (res.code == 0){
  937. this.form.discountrate = this.form.discountrate * 100
  938. this.form.productdiscount = this.form.productdiscount * 100
  939. this.form.orderratio = this.form.orderratio * 100
  940. }
  941. this.tool.showMessage(res,() => {
  942. this.$store.commit('setLoading',false)
  943. console.log(res.data);
  944. this.$store.dispatch('DrawerShowChange',false)
  945. this.$store.dispatch('changeDetailDrawer',true)
  946. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  947. })
  948. }
  949. }
  950. })
  951. },
  952. onCancel () {
  953. this.$store.dispatch('DrawerShowChange',false)
  954. this.$refs.form.resetFields()
  955. this.form = {
  956. "sa_contractid": 0,
  957. "sys_enterpriseid": "",
  958. "projectname":'',
  959. "projectnum":"",
  960. "begdate": "",
  961. "enddate": "",
  962. "sa_projectid": "", //可选
  963. "type": "", //可选
  964. "discountrate": '', //可选
  965. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  966. "saler_hrid":'',
  967. "signdate": "", //可选
  968. "signby": "", //可选
  969. "remarks": "", //可选
  970. "title": "",
  971. "signamount":'',
  972. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  973. "salername":'',
  974. "enterprisename":'',
  975. "sys_printmodelid": '',//可选
  976. "typemx":"",//可选
  977. "modelname":"",
  978. "calculatemodel":'1',
  979. "productdiscount":'',
  980. "orderratio":'',
  981. "ascription_title":'',
  982. 'ascription_contractid':'',
  983. 'receiptName':'',
  984. "rec_contactsid":'',//收货联系人
  985. 'phonenumber':''
  986. }
  987. this.$refs.member.selected = []
  988. this.$refs.selectSalesman.selected = []
  989. this.address = ''
  990. this.agentVisible = false
  991. this.salerVisible = false
  992. this.projectVisible = false
  993. this.accountVisible = false
  994. this.modelVisible = false
  995. this.contractVisible = false
  996. this.receiptVisible = false
  997. this.salesmanVisible = false
  998. },
  999. showChange (key) {
  1000. this.agentVisible = false
  1001. this.salerVisible = false
  1002. this.projectVisible = false
  1003. this.accountVisible = false
  1004. this.modelVisible = false
  1005. this.contractVisible = false
  1006. this.receiptVisible = false
  1007. this.salesmanVisible = false
  1008. if (key === 'projectVisible'){
  1009. if (this.form.sys_enterpriseid !== ''){
  1010. this.$refs.project.params.content.sys_enterpriseid = this.form.sys_enterpriseid
  1011. this.$refs.project.queryEnterpriseArchives()
  1012. key ? this[key] = true : ''
  1013. }else {
  1014. this.$refs.form.validateField("enterprisename")
  1015. this.$refs.form.validateField("sys_enterpriseid")
  1016. }
  1017. }else if (key === 'receiptVisible'){
  1018. if (this.form.sys_enterpriseid !== ''){
  1019. this.$refs.receipt.params.content.sys_enterpriseid = this.form.sys_enterpriseid
  1020. this.$refs.receipt.queryReceipts()
  1021. key ? this[key] = true : ''
  1022. }else {
  1023. this.$refs.form.validateField("enterprisename")
  1024. this.$refs.form.validateField("sys_enterpriseid")
  1025. }
  1026. }else if(key === 'contractVisible'){
  1027. this.$refs.contractRef.queryProject(this.$refs.contractRef.projectParam.content.pageNumber = 1)
  1028. key ? this[key] = true : ''
  1029. }else if(key === 'salesmanVisible'){
  1030. this.$refs.selectSalesman.listData(this.$refs.member.param.content.pageNumber = 1)
  1031. key ? this[key] = true : ''
  1032. }else {
  1033. key ? this[key] = true : ''
  1034. }
  1035. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1036. },
  1037. agentChange (data) {
  1038. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1039. this.form.enterprisename = data[0].enterprisename
  1040. this.agentVisible = false
  1041. if (this.$route.query.type == '框架'){
  1042. this.salsemanParam.content.type = 1
  1043. this.salsemanParam.content.sys_enterpriseid = this.form.sys_enterpriseid
  1044. this.querySalse()
  1045. }else if (this.$route.query.type == '直销'){
  1046. this.queryCustomerLeader(data[0].sa_customersid)
  1047. }
  1048. },
  1049. async querySalse(){
  1050. if (this.form.customername){
  1051. let param = {
  1052. "id":20230305201202,
  1053. "content":{
  1054. "type":4,
  1055. "sys_enterpriseid":this.form.customerid,
  1056. "sa_projectid":'',
  1057. },
  1058. }
  1059. const res = await this.$api.requested(param)
  1060. console.log("res",res)
  1061. this.form.salername = res.data[0].name
  1062. this.form.saler_hrid = res.data[0].hrid
  1063. }else {
  1064. const res = await this.$api.requested(this.salsemanParam)
  1065. console.log("res",res)
  1066. this.form.salername = res.data[0].name
  1067. this.form.saler_hrid = res.data[0].hrid
  1068. }
  1069. },
  1070. salesmanChange(data){
  1071. console.log(data,"业务员")
  1072. this.form.salername = data[0].name
  1073. this.form.saler_hrid = data[0].hrid
  1074. this.salesmanVisible = false
  1075. },
  1076. salerChange (data) {
  1077. this.form.saler_hrid = data[0].hrid
  1078. this.form.saler_name = data[0].name
  1079. this.salerVisible = false
  1080. },
  1081. projectChange (data) {
  1082. this.form.projectname = data.projectname
  1083. this.form.projectnum = data.projectnum
  1084. this.form.sa_projectid = data.sa_projectid
  1085. this.address = data.province + data.city + data.county + data.address
  1086. this.projectVisible = false
  1087. this.salsemanParam.content.type = 2
  1088. this.salsemanParam.content.sa_projectid = this.form.sa_projectid
  1089. this.querySalse()
  1090. },
  1091. receiptChange (data) {
  1092. this.form.receiptName = data.name
  1093. this.form.phonenumber = data.phonenumber
  1094. this.form.rec_contactsid = data.contactsid
  1095. this.receiptVisible = false
  1096. },
  1097. accountChange (data) {
  1098. this.form.enterprisename = data[0].enterprisename
  1099. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1100. this.accountVisible = false
  1101. if (this.$route.query.type == '工具借用'){
  1102. this.salsemanParam.content.type = 3
  1103. this.salsemanParam.content.sys_enterpriseid = this.form.sys_enterpriseid
  1104. this.querySalse()
  1105. }
  1106. },
  1107. centerChange (data) {
  1108. this.form.enterprisename = data[0].enterprisename
  1109. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1110. this.agentVisible = false
  1111. },
  1112. concratChange (data) {
  1113. console.log(data,"输出")
  1114. this.centerEnterpriseList = data.parties
  1115. this.form.ascription_title = data.title
  1116. this.form.ascription_contractid = data.sa_contractid
  1117. this.form.projectname = data.projectname
  1118. this.form.projectnum = data.projectnum
  1119. this.form.sa_projectid = data.sa_projectid
  1120. this.form.customername = data.enterprisename
  1121. this.form.customerid = data.sys_enterpriseid
  1122. this.contractVisible = false
  1123. this.salsemanParam.content.type = 2
  1124. this.salsemanParam.content.sa_projectid = this.form.sa_projectid
  1125. this.querySalse()
  1126. },
  1127. modelChange (data) {
  1128. this.form.modelname = data.modelname
  1129. console.log(this.form.modelname);
  1130. this.form.sys_printmodelid = data.sys_printmodelid
  1131. this.modelVisible = false
  1132. },
  1133. clearTime () {
  1134. this.form.begdate = ''
  1135. this.form.enddate = ''
  1136. },
  1137. timeChange (time) {
  1138. this.form.begdate = time[0]
  1139. this.form.enddate = time[1]
  1140. },
  1141. async getModelList () {
  1142. let res = await this.$api.requested({
  1143. "id": 20221121155801,
  1144. "content": {
  1145. "pageNumber": 1,
  1146. "pageSize": 999999,
  1147. "where":{
  1148. "condition":""
  1149. }
  1150. }
  1151. })
  1152. this.modelList = res.data
  1153. console.log(this.modelList);
  1154. },
  1155. tabClick(){
  1156. console.log(this.activeName)
  1157. if (this.activeName === '客户'){
  1158. this.agentListPrams.content.where.type = '19'
  1159. this.$refs.member.flag = true
  1160. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1161. }else {
  1162. this.agentListPrams.content.where.type = '20'
  1163. this.$refs.member.flag = true
  1164. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1165. }
  1166. },
  1167. /*获取付款条件*/
  1168. async payTypeList(){
  1169. const res = await this.$api.requested({
  1170. id: "20230110100103",
  1171. content: {
  1172. pageNumber: 1,
  1173. pageSize:50,
  1174. where: {condition: ""},
  1175. }
  1176. })
  1177. console.log(res,'res')
  1178. this.payTypeData = res.data.map((item,index)=>{
  1179. /*if (item.point === '订单审核'){
  1180. return {
  1181. label:item.ruleno + '\xa0 \xa0 \xa0 \xa0' + item.point + '\xa0 \xa0 \xa0 \xa0' + "立账额度" + (item.amountrate * 100) +'% ' + '\xa0 \xa0 \xa0 \xa0' + '后置天数' + item.days + '天',
  1182. value:item.ruleno + '' + item.point + '' + "立账额度" + (item.amountrate * 100) +'% ' + '' + '后置天数' + item.days + '天',
  1183. }
  1184. }else {
  1185. return {
  1186. label:item.ruleno + '\xa0 \xa0 \xa0 \xa0' + item.point + '\xa0 \xa0 \xa0 \xa0' + '后置天数' + item.days + '天',
  1187. value:item.ruleno + '' + item.point + '' + '后置天数' + item.days + '天',
  1188. }
  1189. }*/
  1190. return {
  1191. label:item.ruleno + '-' + item.remarks,
  1192. value:item.ruleno + '-' + item.remarks
  1193. }
  1194. })
  1195. /* res.data.forEach((item,index)=>{
  1196. if (item.point === '订单审核'){
  1197. this.payTypeData[index] = item.ruleno + ' ' + item.point + ' ' + "立账额度" + (item.amountrate * 100) +'% ' + '后置天数' + item.days
  1198. }else {
  1199. this.payTypeData[index] = item.ruleno + ' ' + item.point + ' ' + '后置天数' + item.days
  1200. }
  1201. })*/
  1202. console.log(this.payTypeData,'处理后数据')
  1203. },
  1204. discountrateChange(){
  1205. let discountrate = parseFloat(this.form.discountrate)
  1206. if (!isNaN(discountrate)){
  1207. this.form.discountrate = Math.round(this.form.discountrate * 100)/100
  1208. }
  1209. },
  1210. orderratioChange(){
  1211. let orderratio = parseFloat(this.form.orderratio)
  1212. if (!isNaN(orderratio)){
  1213. this.form.orderratio = Math.round(this.form.orderratio * 100)/100
  1214. }
  1215. },
  1216. productdiscountChange(){
  1217. let productdiscount = parseFloat(this.form.productdiscount)
  1218. if (!isNaN(productdiscount)){
  1219. this.form.productdiscount = Math.round(this.form.productdiscount * 100)/100
  1220. }
  1221. },
  1222. /*获取客户负责人*/
  1223. async queryCustomerLeader(id){
  1224. let param = {
  1225. id:20221012164302,
  1226. content:{
  1227. sa_customersid:id
  1228. }
  1229. }
  1230. const res = await this.$api.requested(param)
  1231. this.form.salername = res.data.leader?res.data.leader[0].hr.name:''
  1232. this.form.saler_hrid = res.data.leader?res.data.leader[0].hr.hrid:''
  1233. }
  1234. },
  1235. mounted() {
  1236. this.payTypeList()
  1237. }
  1238. };
  1239. </script>
  1240. <style>
  1241. .input-with-select .el-input-group__prepend {
  1242. background-color: #fff;
  1243. }
  1244. </style>
  1245. <style scoped>
  1246. * {
  1247. box-sizing: border-box;
  1248. }
  1249. .header_info {
  1250. background: #ffffff;
  1251. padding: 16px 16px 0 16px;
  1252. margin-bottom: 16px;
  1253. }
  1254. /deep/.el-select,.el-input,.el-date-editor {
  1255. width: 100% !important;
  1256. }
  1257. </style>