addContract.vue 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275
  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. <selectAgentNew ref="member" type="22" :param="agentListPrams" :radio="true" @onSelect="centerChange" @onCancel="agentVisible = false"></selectAgentNew>
  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 selectAgentNew from './selectAgentNew.vue'
  629. import seleteProject from './seleteProject'
  630. import seleteProjectContract from './seleteProjectContract'
  631. import selectContract from "@/HDrpManagement/contractManage/components/selectContract";
  632. import TimeSelect from './TimeSelect'
  633. import selectModel from './seleteModel'
  634. import seleteReceipt from './seleteReceipt'
  635. import selectSalesman from './selectSalesman'
  636. export default {
  637. name: '',
  638. components:{selectPople,TimeSelect,seleteProject,selectAgent,selectModel,seleteProjectContract,seleteReceipt,selectSalesman,selectContract,selectAgentNew},
  639. data () {
  640. var checkNumber = (rule, value, callback) => {
  641. if (typeof +value != 'number') {
  642. return callback(new Error('请填写数字'));
  643. }
  644. callback()
  645. }
  646. var NumberSize = (rule, value, callback) => {
  647. if (isNaN(parseFloat(value)) && value !== ''){
  648. return callback(new Error('输入不合法,请输入数值'))
  649. }else if (+value > 100 || +value < 0 ) {
  650. return callback(new Error('折扣范围(0-100%)'));
  651. }
  652. callback()
  653. }
  654. var checkTimer = (rule, value, callback) => {
  655. if (new Date(this.form.enddate).getTime() > new Date(value).getTime() && new Date(this.form.begdate).getTime() < new Date(value).getTime()) {
  656. callback()
  657. } {
  658. return callback(new Error('签约日期必须在合同有效期内'));
  659. }
  660. }
  661. var discountrate = (rule,value,callback) =>{
  662. if (this.form.discountrate < 0 || this.form.discountrate > 100){
  663. callback(new Error('请输入0-100%'))
  664. } else {
  665. callback();
  666. }
  667. }
  668. return {
  669. activeName: '客户',
  670. agentVisible:false,
  671. salerVisible:false,
  672. projectVisible:false,
  673. accountVisible:false,
  674. modelVisible:false,
  675. contractVisible:false,
  676. receiptVisible:false,
  677. salesmanVisible:false,
  678. modelList:[],
  679. /* 新建居间项目时 所关联的居间商 */
  680. centerEnterpriseList:[],
  681. payTypeData:[],
  682. address:'',
  683. form: {
  684. "sa_contractid": 0,
  685. "sys_enterpriseid": "",
  686. "projectname":'',
  687. "projectnum":'',
  688. "begdate": "",
  689. "enddate": "",
  690. "sa_projectid": "", //可选
  691. "type": "", //可选
  692. "discountrate": '', //可选
  693. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  694. "saler_hrid":'',
  695. "signdate": "", //可选
  696. "signby": "", //可选
  697. "remarks": "", //可选
  698. "title": "",
  699. "signamount":'',
  700. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  701. "salername":'',
  702. "enterprisename":'',
  703. "sys_printmodelid": '',//可选
  704. "typemx":"",//可选
  705. "modelname":"",
  706. "calculatemodel":'1',
  707. "productdiscount":'',
  708. "orderratio":'',
  709. "ascription_title":'',
  710. 'ascription_contractid':'',
  711. 'receiptName':'',
  712. "rec_contactsid":'',//收货联系人
  713. 'phonenumber':'',
  714. 'paytype':'',
  715. 'reminddays':'',
  716. 'customername':'',
  717. 'customerid':''
  718. },
  719. rules: {
  720. title: [
  721. { required: true, message: '请填写标题', trigger: 'blur' },
  722. ],
  723. sys_enterpriseid: [
  724. { required: true, message: '请选择客户', trigger: 'change' },
  725. ],
  726. ascription_title: [
  727. { required: true, message: '请选择项目合同', trigger: 'change' },
  728. ],
  729. begdate: [
  730. { required: true, message: '请选择生效日期', trigger: 'blur' },
  731. ],
  732. projectname: [
  733. { required: true, message: '请选择项目', trigger: 'change' },
  734. ],
  735. receiptName: [
  736. { required: true, message: '请选择收货人', trigger: 'change' },
  737. ],
  738. salername: [
  739. { required: true, message: '请选择业务员', trigger: 'change' },
  740. ],
  741. enterprisename: [
  742. { required: true, message: '请选择合作伙伴', trigger: 'change' },
  743. ],
  744. signdate: [
  745. { required: true, message: '请填写签约时间', trigger: 'change' },
  746. ],
  747. paytype: [
  748. { required: true, message: '请选择付款条件', trigger: 'change' },
  749. ],
  750. reminddays: [
  751. { required: true, message: '请设置发货日期提醒天数', trigger: 'blur' },
  752. ],
  753. productdiscount: [
  754. /* { message: '必须为数字', type:'number', trigger: 'change' },*/
  755. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
  756. { required: true, message: '请填写折扣', trigger: 'blur' },
  757. /* { validator: checkNumber, trigger: 'blur'},*/
  758. { validator: NumberSize, trigger: 'blur'}
  759. ],
  760. orderratio: [
  761. /* { message: '必须为数字', type:'number', trigger: 'change' },*/
  762. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change,blur'},
  763. { required: true, message: '请填写折扣', trigger: 'blur' },
  764. /* { validator: checkNumber, trigger: 'blur'},*/
  765. { validator: NumberSize, trigger: 'blur'}
  766. ],
  767. salername: [
  768. { required: true, message: '请选择合作伙伴', trigger: 'change' },
  769. ],
  770. discountrate: [
  771. /* { validator: checkNumber, trigger: 'blur'},*/
  772. { pattern:/^[0-9]+\.{0,1}[0-9]{0,4}$/,message: '输入不合法,请输入数值',trigger: 'change'},
  773. { validator: NumberSize, trigger: 'blur'}
  774. ],
  775. },
  776. salerListParams: {
  777. "id": 20221122153902,
  778. "content": {
  779. "pageNumber": 1,
  780. "pageSize": 20,
  781. "where": {
  782. "condition": ""
  783. }
  784. },
  785. },
  786. agentListPrams: {
  787. "id": 20220920083901,
  788. "content": {
  789. "pageNumber": 1,
  790. "pageSize": 20,
  791. "where": {
  792. "condition": "",
  793. "type":5,
  794. "typemx":"",
  795. }
  796. }
  797. },
  798. salsemanParam:{
  799. "id":20230305201202,
  800. "content":{
  801. "type":'',//type:1经销商合作协议,2:经销项目协议,直销项目协议,居间协议,3:工具借用协议
  802. "sys_enterpriseid":'',//type=1或3时传
  803. "sa_projectid":'' //type=2时传
  804. }
  805. }
  806. };
  807. },
  808. computed: {
  809. ...mapGetters({
  810. DrawerShow:'DrawerShow',
  811. loading:'loading'
  812. })
  813. },
  814. watch: {
  815. 'DrawerShow': {
  816. handler (val) {
  817. if (!val) {
  818. this.showChange(false)
  819. if (this.$refs.form) this.$refs.form.resetFields()
  820. this.onCancel()
  821. this.$refs.timeSelect.time = ''
  822. } else {
  823. if(this.$refs.member) this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  824. if(this.$refs.project) {
  825. this.$refs.project.params.content.type = this.$route.query.type == '经销项目' ? '2' : '1'
  826. console.log(this.$refs.project.params.content.type,'项目类型');
  827. this.$refs.project.queryEnterpriseArchives()
  828. }
  829. }
  830. if(this.payTypeData.length > 0){
  831. this.payTypeData.forEach(item=>{
  832. if (item.isdefault == 1){
  833. this.form.paytype = item.label
  834. }
  835. })
  836. }
  837. },
  838. immediate:true,
  839. },
  840. },
  841. created () {
  842. this.form = {
  843. "sa_contractid": 0,
  844. "sys_enterpriseid": "",
  845. "projectname":'',
  846. "projectnum":'',
  847. "begdate": "",
  848. "enddate": "",
  849. "sa_projectid": "", //可选
  850. "type": "", //可选
  851. "discountrate": '', //可选
  852. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  853. "saler_hrid":"",
  854. "signdate": "", //可选
  855. "signby": "", //可选
  856. "remarks": "", //可选
  857. "title": "",
  858. "signamount":'',
  859. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  860. "salername":"",
  861. "enterprisename":'',
  862. "sys_printmodelid": '',//可选
  863. "typemx":"",//可选
  864. "modelname":"",
  865. "calculatemodel":'1',
  866. "productdiscount":'',
  867. "orderratio":'',
  868. "ascription_title":'',
  869. 'ascription_contractid':'',
  870. 'receiptName':'',
  871. "rec_contactsid":'',//收货联系人
  872. 'phonenumber':'',
  873. 'paytype':'',
  874. 'reminddays':'',
  875. 'customername':'',
  876. 'customerid':''
  877. }
  878. },
  879. methods: {
  880. async onSubmit () {
  881. this.$refs.form.validate(async val => {
  882. if (!val) return false
  883. console.log(this.form,'form')
  884. if (val) {
  885. this.$store.commit('setLoading',true)
  886. /* 居间新建 */
  887. if (this.$route.query.type == '居间' && this.centerEnterpriseList) {
  888. let is = this.centerEnterpriseList.some(item => item.sys_enterpriseid == this.form.sys_enterpriseid)
  889. if (is) {
  890. this.$confirm('该项目商机已存在居间服务商,不可创建','提示',{
  891. cancelButtonText:'取消',
  892. showConfirmButton:false
  893. }).then(() => {
  894. this.$store.commit('setLoading',false)
  895. })
  896. } else {
  897. if (this.$route.query.type == '直销项目') {
  898. this.form.type = '项目'
  899. this.form.typemx = '直销'
  900. } else if (this.$route.query.type == '经销项目') {
  901. this.form.type = '项目'
  902. this.form.typemx = '经销'
  903. } else {
  904. this.form.type = this.$route.query.type
  905. }
  906. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  907. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  908. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  909. let res = await this.$api.requested({
  910. "id":20221121185302,
  911. "content": this.form
  912. })
  913. if (res.code == 0){
  914. this.form.discountrate = this.form.discountrate * 100
  915. this.form.productdiscount = this.form.productdiscount * 100
  916. this.form.orderratio = this.form.orderratio * 100
  917. }
  918. this.tool.showMessage(res,() => {
  919. this.$store.commit('setLoading',false)
  920. this.$store.dispatch('DrawerShowChange',false)
  921. this.$store.dispatch('changeDetailDrawer',true)
  922. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  923. })
  924. }
  925. } else {
  926. /* 其它新建 */
  927. if (this.$route.query.type == '直销项目') {
  928. this.form.type = '项目'
  929. this.form.typemx = '直销'
  930. } else if (this.$route.query.type == '经销项目') {
  931. this.form.type = '项目'
  932. this.form.typemx = '经销'
  933. } else {
  934. this.form.type = this.$route.query.type
  935. }
  936. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  937. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  938. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  939. let res = await this.$api.requested({
  940. "id":20221121185302,
  941. "content": this.form
  942. })
  943. if (res.code == 0){
  944. this.form.discountrate = this.form.discountrate * 100
  945. this.form.productdiscount = this.form.productdiscount * 100
  946. this.form.orderratio = this.form.orderratio * 100
  947. }
  948. this.tool.showMessage(res,() => {
  949. this.$store.commit('setLoading',false)
  950. console.log(res.data);
  951. this.$store.dispatch('DrawerShowChange',false)
  952. this.$store.dispatch('changeDetailDrawer',true)
  953. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  954. })
  955. }
  956. }
  957. })
  958. },
  959. onCancel () {
  960. this.$store.dispatch('DrawerShowChange',false)
  961. this.$refs.form.resetFields()
  962. this.form = {
  963. "sa_contractid": 0,
  964. "sys_enterpriseid": "",
  965. "projectname":'',
  966. "projectnum":"",
  967. "begdate": "",
  968. "enddate": "",
  969. "sa_projectid": "", //可选
  970. "type": "", //可选
  971. "discountrate": '', //可选
  972. /*"saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选*/
  973. "saler_hrid":'',
  974. "signdate": "", //可选
  975. "signby": "", //可选
  976. "remarks": "", //可选
  977. "title": "",
  978. "signamount":'',
  979. /*"salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,*/
  980. "salername":'',
  981. "enterprisename":'',
  982. "sys_printmodelid": '',//可选
  983. "typemx":"",//可选
  984. "modelname":"",
  985. "calculatemodel":'1',
  986. "productdiscount":'',
  987. "orderratio":'',
  988. "ascription_title":'',
  989. 'ascription_contractid':'',
  990. 'receiptName':'',
  991. "rec_contactsid":'',//收货联系人
  992. 'phonenumber':''
  993. }
  994. this.$refs.member.selected = []
  995. this.$refs.selectSalesman.selected = []
  996. this.address = ''
  997. this.agentVisible = false
  998. this.salerVisible = false
  999. this.projectVisible = false
  1000. this.accountVisible = false
  1001. this.modelVisible = false
  1002. this.contractVisible = false
  1003. this.receiptVisible = false
  1004. this.salesmanVisible = false
  1005. },
  1006. showChange (key) {
  1007. this.agentVisible = false
  1008. this.salerVisible = false
  1009. this.projectVisible = false
  1010. this.accountVisible = false
  1011. this.modelVisible = false
  1012. this.contractVisible = false
  1013. this.receiptVisible = false
  1014. this.salesmanVisible = false
  1015. if (key === 'projectVisible'){
  1016. if (this.form.sys_enterpriseid !== ''){
  1017. this.$refs.project.params.content.sys_enterpriseid = this.form.sys_enterpriseid
  1018. this.$refs.project.queryEnterpriseArchives()
  1019. key ? this[key] = true : ''
  1020. }else {
  1021. this.$refs.form.validateField("enterprisename")
  1022. this.$refs.form.validateField("sys_enterpriseid")
  1023. }
  1024. }else if (key === 'receiptVisible'){
  1025. if (this.form.sys_enterpriseid !== ''){
  1026. this.$refs.receipt.params.content.sys_enterpriseid = this.form.sys_enterpriseid
  1027. this.$refs.receipt.queryReceipts()
  1028. key ? this[key] = true : ''
  1029. }else {
  1030. this.$refs.form.validateField("enterprisename")
  1031. this.$refs.form.validateField("sys_enterpriseid")
  1032. }
  1033. }else if(key === 'contractVisible'){
  1034. this.$refs.contractRef.queryProject(this.$refs.contractRef.projectParam.content.pageNumber = 1)
  1035. key ? this[key] = true : ''
  1036. }else if(key === 'salesmanVisible'){
  1037. this.$refs.selectSalesman.listData(this.$refs.member.param.content.pageNumber = 1)
  1038. key ? this[key] = true : ''
  1039. }else {
  1040. key ? this[key] = true : ''
  1041. }
  1042. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1043. },
  1044. agentChange (data) {
  1045. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1046. this.form.enterprisename = data[0].enterprisename
  1047. this.agentVisible = false
  1048. if (this.$route.query.type == '框架'){
  1049. this.salsemanParam.content.type = 1
  1050. this.salsemanParam.content.sys_enterpriseid = this.form.sys_enterpriseid
  1051. this.querySalse()
  1052. }else if (this.$route.query.type == '直销'){
  1053. this.queryCustomerLeader(data[0].sa_customersid)
  1054. }
  1055. },
  1056. async querySalse(){
  1057. if (this.form.customername){
  1058. let param = {
  1059. "id":20230305201202,
  1060. "content":{
  1061. "type":4,
  1062. "sys_enterpriseid":this.form.customerid,
  1063. "sa_projectid":'',
  1064. },
  1065. }
  1066. const res = await this.$api.requested(param)
  1067. console.log("res",res)
  1068. this.form.salername = res.data[0].name
  1069. this.form.saler_hrid = res.data[0].hrid
  1070. }else {
  1071. const res = await this.$api.requested(this.salsemanParam)
  1072. console.log("res",res)
  1073. this.form.salername = res.data[0].name
  1074. this.form.saler_hrid = res.data[0].hrid
  1075. }
  1076. },
  1077. salesmanChange(data){
  1078. console.log(data,"业务员")
  1079. this.form.salername = data[0].name
  1080. this.form.saler_hrid = data[0].hrid
  1081. this.salesmanVisible = false
  1082. },
  1083. salerChange (data) {
  1084. this.form.saler_hrid = data[0].hrid
  1085. this.form.saler_name = data[0].name
  1086. this.salerVisible = false
  1087. },
  1088. projectChange (data) {
  1089. this.form.projectname = data.projectname
  1090. this.form.projectnum = data.projectnum
  1091. this.form.sa_projectid = data.sa_projectid
  1092. this.address = data.province + data.city + data.county + data.address
  1093. this.projectVisible = false
  1094. this.salsemanParam.content.type = 2
  1095. this.salsemanParam.content.sa_projectid = this.form.sa_projectid
  1096. this.querySalse()
  1097. },
  1098. receiptChange (data) {
  1099. this.form.receiptName = data.name
  1100. this.form.phonenumber = data.phonenumber
  1101. this.form.rec_contactsid = data.contactsid
  1102. this.receiptVisible = false
  1103. },
  1104. accountChange (data) {
  1105. this.form.enterprisename = data[0].enterprisename
  1106. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1107. this.accountVisible = false
  1108. if (this.$route.query.type == '工具借用'){
  1109. this.salsemanParam.content.type = 3
  1110. this.salsemanParam.content.sys_enterpriseid = this.form.sys_enterpriseid
  1111. this.querySalse()
  1112. }
  1113. },
  1114. centerChange (data) {
  1115. this.form.enterprisename = data[0].enterprisename
  1116. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  1117. this.agentVisible = false
  1118. },
  1119. concratChange (data) {
  1120. console.log(data,"输出")
  1121. this.centerEnterpriseList = data.parties
  1122. this.form.ascription_title = data.title
  1123. this.form.ascription_contractid = data.sa_contractid
  1124. this.form.projectname = data.projectname
  1125. this.form.projectnum = data.projectnum
  1126. this.form.sa_projectid = data.sa_projectid
  1127. this.form.customername = data.enterprisename
  1128. this.form.customerid = data.sys_enterpriseid
  1129. this.contractVisible = false
  1130. this.salsemanParam.content.type = 2
  1131. this.salsemanParam.content.sa_projectid = this.form.sa_projectid
  1132. this.querySalse()
  1133. },
  1134. modelChange (data) {
  1135. this.form.modelname = data.modelname
  1136. console.log(this.form.modelname);
  1137. this.form.sys_printmodelid = data.sys_printmodelid
  1138. this.modelVisible = false
  1139. },
  1140. clearTime () {
  1141. this.form.begdate = ''
  1142. this.form.enddate = ''
  1143. },
  1144. timeChange (time) {
  1145. this.form.begdate = time[0]
  1146. this.form.enddate = time[1]
  1147. },
  1148. async getModelList () {
  1149. let res = await this.$api.requested({
  1150. "id": 20221121155801,
  1151. "content": {
  1152. "pageNumber": 1,
  1153. "pageSize": 999999,
  1154. "where":{
  1155. "condition":""
  1156. }
  1157. }
  1158. })
  1159. this.modelList = res.data
  1160. console.log(this.modelList);
  1161. },
  1162. tabClick(){
  1163. console.log(this.activeName)
  1164. if (this.activeName === '客户'){
  1165. this.agentListPrams.content.where.type = '19'
  1166. this.$refs.member.flag = true
  1167. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1168. }else {
  1169. this.agentListPrams.content.where.type = '20'
  1170. this.$refs.member.flag = true
  1171. this.$refs.member.listData(this.$refs.member.param.content.pageNumber = 1)
  1172. }
  1173. },
  1174. /*获取付款条件*/
  1175. async payTypeList(){
  1176. const res = await this.$api.requested({
  1177. id: "20230110100103",
  1178. content: {
  1179. pageNumber: 1,
  1180. pageSize:50,
  1181. where: {condition: ""},
  1182. }
  1183. })
  1184. this.payTypeData = res.data.map((item,index)=>{
  1185. return {
  1186. label:item.ruleno + '-' + item.remarks,
  1187. value:item.ruleno + '-' + item.remarks,
  1188. isdefault:item.isdefault
  1189. }
  1190. })
  1191. this.payTypeData.forEach(item=>{
  1192. if (item.isdefault == 1){
  1193. this.form.paytype = item.label
  1194. }
  1195. })
  1196. },
  1197. discountrateChange(){
  1198. let discountrate = parseFloat(this.form.discountrate)
  1199. if (!isNaN(discountrate)){
  1200. this.form.discountrate = Math.round(this.form.discountrate * 100)/100
  1201. }
  1202. },
  1203. orderratioChange(){
  1204. let orderratio = parseFloat(this.form.orderratio)
  1205. if (!isNaN(orderratio)){
  1206. this.form.orderratio = Math.round(this.form.orderratio * 100)/100
  1207. }
  1208. },
  1209. productdiscountChange(){
  1210. let productdiscount = parseFloat(this.form.productdiscount)
  1211. if (!isNaN(productdiscount)){
  1212. this.form.productdiscount = Math.round(this.form.productdiscount * 100)/100
  1213. }
  1214. },
  1215. /*获取客户负责人*/
  1216. async queryCustomerLeader(id){
  1217. let param = {
  1218. id:20221012164302,
  1219. content:{
  1220. sa_customersid:id
  1221. }
  1222. }
  1223. const res = await this.$api.requested(param)
  1224. this.form.salername = res.data.leader?res.data.leader[0].hr.name:''
  1225. this.form.saler_hrid = res.data.leader?res.data.leader[0].hr.hrid:''
  1226. }
  1227. },
  1228. mounted() {
  1229. this.payTypeList()
  1230. }
  1231. };
  1232. </script>
  1233. <style>
  1234. .input-with-select .el-input-group__prepend {
  1235. background-color: #fff;
  1236. }
  1237. </style>
  1238. <style scoped>
  1239. * {
  1240. box-sizing: border-box;
  1241. }
  1242. .header_info {
  1243. background: #ffffff;
  1244. padding: 16px 16px 0 16px;
  1245. margin-bottom: 16px;
  1246. }
  1247. /deep/.el-select,.el-input,.el-date-editor {
  1248. width: 100% !important;
  1249. }
  1250. </style>