addContract.vue 55 KB

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