addContract.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741
  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}}合同</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="100px" 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"></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 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"></el-input>
  24. </el-popover>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="24">
  28. <el-form-item label="业务员:" prop="">
  29. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="24">
  33. <el-form-item label="折扣(%):" prop="discountrate">
  34. <el-input type="text" size="small" v-model="form.discountrate"></el-input>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="24">
  38. <el-form-item label="合同有效期:" prop="begdate">
  39. <el-input style="display:none" v-model="form.begdate"></el-input>
  40. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="24">
  44. <el-form-item label="签约日期:" prop="signdate">
  45. <el-date-picker
  46. v-model="form.signdate"
  47. type="date"
  48. value-format="yyyy-MM-dd"
  49. placeholder="选择日期">
  50. </el-date-picker>
  51. </el-form-item>
  52. </el-col>
  53. <el-col :span="24">
  54. <el-form-item label="合同模板:" prop="">
  55. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  56. </el-form-item>
  57. </el-col>
  58. <el-col :span="24">
  59. <el-form-item label="合同描述:" prop="remarks">
  60. <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
  61. </el-form-item>
  62. </el-col>
  63. </el-form>
  64. </el-row>
  65. <!--经销项目-->
  66. <el-row v-if="$route.query.type == '经销项目'">
  67. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
  68. <el-col :span="24">
  69. <el-form-item label="标题:" prop="title">
  70. <el-input type="text" size="small" v-model="form.title"></el-input>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="24">
  74. <el-form-item label="经销商:" prop="enterprisename">
  75. <el-popover
  76. placement="bottom"
  77. trigger="manual"
  78. v-model="agentVisible"
  79. width="500">
  80. <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="agentChange" @onCancel="agentVisible = false"></selectAgent>
  81. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename"></el-input>
  82. </el-popover>
  83. </el-form-item>
  84. </el-col>
  85. <el-col :span="24">
  86. <el-form-item label="项目名称:" prop="projectname">
  87. <el-popover
  88. placement="bottom"
  89. trigger="manual"
  90. v-model="projectVisible"
  91. width="600">
  92. <seleteProject ref="project" type="2" @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
  93. <el-input readonly type="text" slot="reference" size="small" v-model="form.projectname" @focus="showChange('projectVisible')"></el-input>
  94. </el-popover>
  95. </el-form-item>
  96. </el-col>
  97. <el-col :span="24">
  98. <el-form-item label="业务员:" prop="">
  99. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  100. </el-form-item>
  101. </el-col>
  102. <el-col :span="24">
  103. <el-form-item label="合同有效期:" prop="begdate">
  104. <input type="text" style="display:none" v-model="form.begdate">
  105. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
  106. </el-form-item>
  107. </el-col>
  108. <el-col :span="24">
  109. <el-form-item label="签约日期:" prop="signdate">
  110. <el-date-picker
  111. v-model="form.signdate"
  112. type="date"
  113. value-format="yyyy-MM-dd"
  114. placeholder="选择日期">
  115. </el-date-picker>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="24">
  119. <el-form-item label="签约金额(元):" prop="signamount">
  120. <el-input type="text" size="small" placeholder="系统自动计算" disabled v-model="form.signamount"></el-input>
  121. </el-form-item>
  122. </el-col>
  123. <el-col :span="24">
  124. <el-form-item label="合同模板:" prop="">
  125. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  126. </el-form-item>
  127. </el-col>
  128. <el-col :span="24">
  129. <el-form-item label="合同描述:" prop="hrid">
  130. <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
  131. </el-form-item>
  132. </el-col>
  133. </el-form>
  134. </el-row>
  135. <!--直销项目-->
  136. <el-row v-if="$route.query.type == '直销项目'">
  137. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
  138. <el-col :span="24">
  139. <el-form-item label="标题:" prop="title">
  140. <el-input type="text" size="small" v-model="form.title"></el-input>
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="24">
  144. <el-form-item label="客户" prop="enterprisename">
  145. <el-popover
  146. placement="bottom"
  147. trigger="manual"
  148. v-model="accountVisible"
  149. width="500">
  150. <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
  151. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('accountVisible')" v-model="form.enterprisename"></el-input>
  152. </el-popover>
  153. </el-form-item>
  154. </el-col>
  155. <el-col :span="24">
  156. <el-form-item label="项目名称:" prop="projectname">
  157. <el-popover
  158. placement="bottom"
  159. trigger="manual"
  160. v-model="projectVisible"
  161. width="600">
  162. <seleteProject ref="project" type="1" @onSelect="projectChange" @onCanel="projectVisible=false"></seleteProject>
  163. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('projectVisible')" v-model="form.projectname"></el-input>
  164. </el-popover>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="24">
  168. <el-form-item label="业务员:" prop="">
  169. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="24">
  173. <el-form-item label="合同有效期:" prop="begdate">
  174. <input type="text" style="display:none" v-model="form.begdate">
  175. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
  176. </el-form-item>
  177. </el-col>
  178. <el-col :span="24">
  179. <el-form-item label="签约日期:" prop="signdate">
  180. <el-date-picker
  181. v-model="form.signdate"
  182. value-format="yyyy-MM-dd"
  183. type="date"
  184. placeholder="选择日期">
  185. </el-date-picker>
  186. </el-form-item>
  187. </el-col>
  188. <el-col :span="24">
  189. <el-form-item label="签约金额(元):" prop="signamount">
  190. <el-input type="text" placeholder="系统自动计算" disabled size="small" v-model="form.signamount"></el-input>
  191. </el-form-item>
  192. </el-col>
  193. <el-col :span="24">
  194. <el-form-item label="合同模板:" prop="">
  195. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  196. </el-form-item>
  197. </el-col>
  198. <el-col :span="24">
  199. <el-form-item label="合同描述:" prop="hrid">
  200. <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
  201. </el-form-item>
  202. </el-col>
  203. </el-form>
  204. </el-row>
  205. <!--工具使用协议-->
  206. <el-row v-if="$route.query.type == '工具借用'">
  207. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="100px" size="small">
  208. <el-col :span="24">
  209. <el-form-item label="标题:" prop="title">
  210. <el-input type="text" size="small" v-model="form.title"></el-input>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="24">
  214. <el-form-item label="客户" prop="enterprisename">
  215. <el-popover
  216. placement="bottom"
  217. trigger="manual"
  218. v-model="accountVisible"
  219. width="500">
  220. <selectAgent ref="member" :param="agentListPrams" :radio="true" @onSelect="accountChange" @onCancel="accountVisible = false"></selectAgent>
  221. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('accountVisible')" v-model="form.enterprisename"></el-input>
  222. </el-popover>
  223. </el-form-item>
  224. </el-col>
  225. <el-col :span="24">
  226. <el-form-item label="业务员:" prop="">
  227. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  228. </el-form-item>
  229. </el-col>
  230. <el-col :span="24">
  231. <el-form-item label="合同有效期:" prop="begdate">
  232. <input type="text" style="display:none" v-model="form.begdate">
  233. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
  234. </el-form-item>
  235. </el-col>
  236. <el-col :span="24">
  237. <el-form-item label="签约日期:" prop="signdate">
  238. <el-date-picker
  239. v-model="form.signdate"
  240. value-format="yyyy-MM-dd"
  241. type="date"
  242. placeholder="选择日期">
  243. </el-date-picker>
  244. </el-form-item>
  245. </el-col>
  246. <el-col :span="24">
  247. <el-form-item label="单套价格(元)" prop="">
  248. <el-input type="text" disabled size="small" placeholder="系统自动计算" v-model="form.signamount"></el-input>
  249. </el-form-item>
  250. </el-col>
  251. <el-col :span="24">
  252. <el-form-item label="合同模板:" prop="">
  253. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="24">
  257. <el-form-item label="合同描述:" prop="hrid">
  258. <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
  259. </el-form-item>
  260. </el-col>
  261. </el-form>
  262. </el-row>
  263. <!--居间协议-->
  264. <el-row v-if="$route.query.type == '居间'">
  265. <el-form :model="form" :rules="rules" ref="form" label-position="right" label-width="110px" size="small">
  266. <el-col :span="24">
  267. <el-form-item label="标题:" prop="title">
  268. <el-input type="text" size="small" v-model="form.title"></el-input>
  269. </el-form-item>
  270. </el-col>
  271. <el-col :span="24">
  272. <el-form-item label="居间服务商:" prop="enterprisename">
  273. <el-popover
  274. placement="bottom"
  275. trigger="manual"
  276. v-model="agentVisible"
  277. width="500">
  278. <selectAgent ref="member" :type="false" :param="agentListPrams" :radio="true" @onSelect="centerChange" @onCancel="agentVisible = false"></selectAgent>
  279. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('agentVisible')" v-model="form.enterprisename"></el-input>
  280. </el-popover>
  281. </el-form-item>
  282. </el-col>
  283. <el-col :span="24">
  284. <el-form-item label="项目合同:" prop="ascription_title">
  285. <el-popover
  286. placement="bottom"
  287. trigger="manual"
  288. v-model="concratVisible"
  289. width="600">
  290. <seleteProjectContract ref="project" @onSelect="concratChange" @onCanel="concratVisible=false"></seleteProjectContract>
  291. <el-input readonly type="text" slot="reference" size="small" @focus="showChange('concratVisible')" v-model="form.ascription_title"></el-input>
  292. </el-popover>
  293. </el-form-item>
  294. </el-col>
  295. <el-col :span="24">
  296. <el-form-item label="项目名称:" prop="projectname">
  297. <el-input disabled type="text" size="small" v-model="form.projectname"></el-input>
  298. </el-form-item>
  299. </el-col>
  300. <el-col :span="24">
  301. <el-form-item label="业务员:" prop="">
  302. <el-input disabled type="text" size="small" v-model="form.salername"></el-input>
  303. </el-form-item>
  304. </el-col>
  305. <el-col :span="24">
  306. <el-form-item label="合同有效期:" prop="begdate">
  307. <input type="text" style="display:none" v-model="form.begdate">
  308. <time-select ref="timeSelect" class="inline-16" @clearSelect="clearTime" @timeChange="timeChange"></time-select>
  309. </el-form-item>
  310. </el-col>
  311. <el-col :span="24">
  312. <el-form-item label="签约日期:" prop="signdate">
  313. <el-date-picker
  314. v-model="form.signdate"
  315. value-format="yyyy-MM-dd"
  316. type="date"
  317. placeholder="选择日期">
  318. </el-date-picker>
  319. </el-form-item>
  320. </el-col>
  321. <el-col :span="24">
  322. <el-form-item label="计算方式" prop="">
  323. <el-radio-group v-model="form.calculatemodel">
  324. <el-radio label="1">按订单金额比例计算</el-radio>
  325. <el-radio label="2">按产品折扣计算</el-radio>
  326. </el-radio-group>
  327. </el-form-item>
  328. </el-col>
  329. <el-col :span="24" v-if="form.calculatemodel==1">
  330. <el-form-item label="订单金额比例(%):" prop="orderratio" label-width="160px">
  331. <el-input type="text" size="small" v-model.number="form.orderratio"></el-input>
  332. </el-form-item>
  333. </el-col>
  334. <el-col :span="24" v-if="form.calculatemodel==2">
  335. <el-form-item label="产品折扣(%)" prop="productdiscount">
  336. <el-input type="text" size="small" v-model.number="form.productdiscount"></el-input>
  337. </el-form-item>
  338. </el-col>
  339. <el-col :span="24">
  340. <el-form-item label="合同模板:" prop="">
  341. <el-input disabled type="text" size="small" :value="$route.query.type == '框架' ? '经销合作' : $route.query.type"></el-input>
  342. </el-form-item>
  343. </el-col>
  344. <el-col :span="24">
  345. <el-form-item label="合同描述:" prop="hrid">
  346. <el-input type="textarea" size="small" v-model="form.remarks"></el-input>
  347. </el-form-item>
  348. </el-col>
  349. </el-form>
  350. </el-row>
  351. </div>
  352. </div>
  353. <div class="fixed__btn__panel">
  354. <el-button size="small" @click="onCancel" class="normal-btn-width">取 消</el-button>
  355. <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
  356. </div>
  357. </div>
  358. </template>
  359. <script>
  360. import {mapGetters} from 'vuex'
  361. import selectPople from './selectSaler'
  362. import selectAgent from './selectAgent'
  363. import seleteProject from './seleteProject'
  364. import seleteProjectContract from './seleteProjectContract'
  365. import TimeSelect from './TimeSelect'
  366. import selectModel from './seleteModel'
  367. export default {
  368. name: '',
  369. components:{selectPople,TimeSelect,seleteProject,selectAgent,selectModel,seleteProjectContract},
  370. data () {
  371. var checkNumber = (rule, value, callback) => {
  372. if (typeof +value != 'number') {
  373. return callback(new Error('请填写数字'));
  374. }
  375. callback()
  376. }
  377. var NumberSize = (rule, value, callback) => {
  378. if (+value > 100 || +value < 1 && value) {
  379. return callback(new Error('折扣范围(1-100)'));
  380. }
  381. callback()
  382. }
  383. var checkTimer = (rule, value, callback) => {
  384. if (new Date(this.form.enddate).getTime() > new Date(value).getTime() && new Date(this.form.begdate).getTime() < new Date(value).getTime()) {
  385. callback()
  386. } {
  387. return callback(new Error('签约日期必须在合同有效期内'));
  388. }
  389. }
  390. return {
  391. agentVisible:false,
  392. salerVisible:false,
  393. projectVisible:false,
  394. accountVisible:false,
  395. modelVisible:false,
  396. concratVisible:false,
  397. modelList:[],
  398. /* 新建居间项目时 所关联的居间商 */
  399. centerEnterpriseList:[],
  400. form: {
  401. "sa_contractid": 0,
  402. "sys_enterpriseid": "",
  403. "projectname":'',
  404. "begdate": "",
  405. "enddate": "",
  406. "sa_projectid": "", //可选
  407. "type": "", //可选
  408. "discountrate": '', //可选
  409. "saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选
  410. "signdate": "", //可选
  411. "signby": "", //可选
  412. "remarks": "", //可选
  413. "title": "",
  414. "signamount":'',
  415. "salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,
  416. "enterprisename":'',
  417. "sys_printmodelid": '',//可选
  418. "typemx":"",//可选
  419. "modelname":"",
  420. "calculatemodel":'1',
  421. "productdiscount":'',
  422. "orderratio":'',
  423. "ascription_title":'',
  424. 'ascription_contractid':''
  425. },
  426. rules: {
  427. title: [
  428. { required: true, message: '请填写标题', trigger: 'blur' },
  429. ],
  430. sys_enterpriseid: [
  431. { required: true, message: '请选择经销商', trigger: 'blur' },
  432. ],
  433. ascription_title: [
  434. { required: true, message: '请选择项目合同', trigger: 'change' },
  435. ],
  436. begdate: [
  437. { required: true, message: '请选择生效日期', trigger: 'blur' },
  438. ],
  439. projectname: [
  440. { required: true, message: '请选择项目', trigger: 'change' },
  441. ],
  442. salername: [
  443. { required: true, message: '请选择业务员', trigger: 'change' },
  444. ],
  445. enterprisename: [
  446. { required: true, message: '请选择', trigger: 'change' },
  447. ],
  448. signdate: [
  449. { required: true, message: '请填写签约时间', trigger: 'change' },
  450. ],
  451. productdiscount: [
  452. { message: '必须为数字', type:'number', trigger: 'change' },
  453. { required: true, message: '请填写折扣', trigger: 'blur' },
  454. ],
  455. orderratio: [
  456. { message: '必须为数字', type:'number', trigger: 'change' },
  457. { required: true, message: '请填写折扣', trigger: 'blur' },
  458. ],
  459. salername: [
  460. { required: true, message: '请选择经销商', trigger: 'change' },
  461. ],
  462. discountrate: [
  463. { validator: checkNumber, trigger: 'blur'},
  464. { validator: NumberSize, trigger: 'blur'}
  465. ],
  466. },
  467. salerListParams: {
  468. "id": 20221122153902,
  469. "content": {
  470. "pageNumber": 1,
  471. "pageSize": 20,
  472. "where": {
  473. "condition": ""
  474. }
  475. },
  476. },
  477. agentListPrams: {
  478. "id": 20220920083901,
  479. "content": {
  480. "pageNumber": 1,
  481. "pageSize": 20,
  482. "where": {
  483. "condition": "",
  484. "type":'',
  485. }
  486. }
  487. },
  488. };
  489. },
  490. computed: {
  491. ...mapGetters({
  492. DrawerShow:'DrawerShow'
  493. })
  494. },
  495. watch: {
  496. 'DrawerShow': {
  497. handler (val) {
  498. if (!val) {
  499. this.showChange(false)
  500. if (this.$refs.form) this.$refs.form.resetFields()
  501. this.$refs.timeSelect.time = ''
  502. } else {
  503. if(this.$refs.member) this.$refs.member.listData()
  504. if(this.$refs.project) {
  505. this.$refs.project.params.content.type = this.$route.query.type == '经销项目' ? '2' : '1'
  506. console.log(this.$refs.project.params.content.type,'项目类型');
  507. this.$refs.project.queryEnterpriseArchives()
  508. }
  509. }
  510. },
  511. immediate:true,
  512. }
  513. },
  514. created () {
  515. this.form = {
  516. "sa_contractid": 0,
  517. "sys_enterpriseid": "",
  518. "projectname":'',
  519. "begdate": "",
  520. "enddate": "",
  521. "sa_projectid": "", //可选
  522. "type": "", //可选
  523. "discountrate": '', //可选
  524. "saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选
  525. "signdate": "", //可选
  526. "signby": "", //可选
  527. "remarks": "", //可选
  528. "title": "",
  529. "signamount":'',
  530. "salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,
  531. "enterprisename":'',
  532. "sys_printmodelid": '',//可选
  533. "typemx":"",//可选
  534. "modelname":"",
  535. "calculatemodel":'1',
  536. "productdiscount":'',
  537. "orderratio":'',
  538. "ascription_title":'',
  539. 'ascription_contractid':''
  540. }
  541. },
  542. methods: {
  543. async onSubmit () {
  544. this.$refs.form.validate(async val => {
  545. if (val) {
  546. /* 居间新建 */
  547. if (this.$route.query.type == '居间') {
  548. let is = this.centerEnterpriseList.some(item => item.sys_enterpriseid == this.form.sys_enterpriseid)
  549. if (is) {
  550. this.$confirm('当前项目已存在此居间商,请前往项目商机维护','提示',{
  551. confirmButtonText:'确定',
  552. cancelButtonText:'取消'
  553. }).then(() => {
  554. JSON.parse(sessionStorage.getItem('module_info')).forEach(item1 => {
  555. item1.modules.forEach(item2 => {
  556. if(item2.systemmodulename == "项目管理") {
  557. sessionStorage.setItem('active_modules',JSON.stringify(item2))
  558. this.$store.dispatch('changeDetailDrawer',true)
  559. this.$store.dispatch('DrawerShowChange',false)
  560. this.$router.push({path:'/projectChangeDetail',query:{id:this.centerEnterpriseList[0].sa_projectid}})
  561. return
  562. }
  563. })
  564. })
  565. })
  566. } else {
  567. if (this.$route.query.type == '直销项目') {
  568. this.form.type = '项目'
  569. this.form.typemx = '直销'
  570. } else if (this.$route.query.type == '经销项目') {
  571. this.form.type = '项目'
  572. this.form.typemx = '经销'
  573. } else {
  574. this.form.type = this.$route.query.type
  575. }
  576. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  577. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  578. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  579. let res = await this.$api.requested({
  580. "id":20221121185302,
  581. "content": this.form
  582. })
  583. this.tool.showMessage(res,() => {
  584. console.log(res.data);
  585. this.$store.dispatch('DrawerShowChange',false)
  586. this.$store.dispatch('changeDetailDrawer',true)
  587. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  588. })
  589. }
  590. } else {
  591. /* 其它新建 */
  592. if (this.$route.query.type == '直销项目') {
  593. this.form.type = '项目'
  594. this.form.typemx = '直销'
  595. } else if (this.$route.query.type == '经销项目') {
  596. this.form.type = '项目'
  597. this.form.typemx = '经销'
  598. } else {
  599. this.form.type = this.$route.query.type
  600. }
  601. this.form.discountrate ? this.form.discountrate = (this.form.discountrate / 100).toFixed(4) : ''
  602. this.form.productdiscount ? this.form.productdiscount = (this.form.productdiscount / 100).toFixed(4) : ''
  603. this.form.orderratio ? this.form.orderratio = (this.form.orderratio / 100).toFixed(4) : ''
  604. let res = await this.$api.requested({
  605. "id":20221121185302,
  606. "content": this.form
  607. })
  608. this.tool.showMessage(res,() => {
  609. console.log(res.data);
  610. this.$store.dispatch('DrawerShowChange',false)
  611. this.$store.dispatch('changeDetailDrawer',true)
  612. this.$router.push({path:'/contractDetail',query:{type:this.$route.query.type,id:res.data.sa_contractid,rowindex:res.data.rowindex}})
  613. })
  614. }
  615. }
  616. })
  617. },
  618. onCancel () {
  619. this.$store.dispatch('DrawerShowChange',false)
  620. this.form = {
  621. "sa_contractid": 0,
  622. "sys_enterpriseid": "",
  623. "projectname":'',
  624. "begdate": "",
  625. "enddate": "",
  626. "sa_projectid": "", //可选
  627. "type": "", //可选
  628. "discountrate": '', //可选
  629. "saler_hrid": JSON.parse(window.sessionStorage.getItem('active_account')).hrid, //可选
  630. "signdate": "", //可选
  631. "signby": "", //可选
  632. "remarks": "", //可选
  633. "title": "",
  634. "signamount":'',
  635. "salername":JSON.parse(window.sessionStorage.getItem('active_account')).name,
  636. "enterprisename":'',
  637. "sys_printmodelid": '',//可选
  638. "typemx":"",//可选
  639. "modelname":"",
  640. "calculatemodel":'1',
  641. "productdiscount":'',
  642. "orderratio":'',
  643. "ascription_title":'',
  644. 'ascription_contractid':''
  645. }
  646. },
  647. showChange (key) {
  648. this.agentVisible = false
  649. this.salerVisible = false
  650. this.projectVisible = false
  651. this.accountVisible = false
  652. this.modelVisible = false
  653. this.concratVisible = false
  654. key ? this[key] = true : ''
  655. },
  656. agentChange (data) {
  657. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  658. this.form.enterprisename = data[0].enterprisename
  659. this.agentVisible = false
  660. },
  661. salerChange (data) {
  662. this.form.saler_hrid = data[0].hrid
  663. this.form.saler_name = data[0].name
  664. this.salerVisible = false
  665. },
  666. projectChange (data) {
  667. this.form.projectname = data.projectname
  668. this.form.sa_projectid = data.sa_projectid
  669. this.projectVisible = false
  670. },
  671. accountChange (data) {
  672. this.form.enterprisename = data[0].enterprisename
  673. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  674. this.accountVisible = false
  675. },
  676. centerChange (data) {
  677. this.form.enterprisename = data[0].enterprisename
  678. this.form.sys_enterpriseid = data[0].sys_enterpriseid
  679. this.agentVisible = false
  680. },
  681. concratChange (data) {
  682. this.centerEnterpriseList = data.parties
  683. this.form.ascription_title = data.projectname
  684. this.form.ascription_contractid = data.sa_contractid
  685. this.form.projectname = data.projectname
  686. this.form.sa_projectid = data.sa_projectid
  687. this.concratVisible = false
  688. },
  689. modelChange (data) {
  690. this.form.modelname = data.modelname
  691. console.log(this.form.modelname);
  692. this.form.sys_printmodelid = data.sys_printmodelid
  693. this.modelVisible = false
  694. },
  695. clearTime () {
  696. this.form.begdate = ''
  697. this.form.enddate = ''
  698. },
  699. timeChange (time) {
  700. this.form.begdate = time[0]
  701. this.form.enddate = time[1]
  702. },
  703. async getModelList () {
  704. let res = await this.$api.requested({
  705. "id": 20221121155801,
  706. "content": {
  707. "pageNumber": 1,
  708. "pageSize": 999999,
  709. "where":{
  710. "condition":""
  711. }
  712. }
  713. })
  714. this.modelList = res.data
  715. console.log(this.modelList);
  716. }
  717. },
  718. };
  719. </script>
  720. <style scoped>
  721. * {
  722. box-sizing: border-box;
  723. }
  724. .header_info {
  725. background: #ffffff;
  726. padding: 16px 16px 0 16px;
  727. margin-bottom: 16px;
  728. }
  729. /deep/.el-select,.el-input,.el-date-editor {
  730. width: 100% !important;
  731. }
  732. </style>