add.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. <template>
  2. <div id="addPlanList">
  3. <el-card>
  4. <span>基本信息</span>
  5. <el-form :model="basicForm" :rules="basicRules" ref="basic" label-width="auto">
  6. <el-row :gutter="10">
  7. <el-col :span="1.5">
  8. <el-form-item label="计划编码">
  9. <el-input
  10. v-model="basicForm.planCode"
  11. size="mini"
  12. disabled
  13. style="width: 200px"
  14. />
  15. </el-form-item>
  16. </el-col>
  17. <el-col :span="1.5">
  18. <el-form-item label="计划名称" prop="planName" :rules="{ required: true, message: '请填写名称', trigger: 'blur' }">
  19. <el-input
  20. v-model.trim="basicForm.planName"
  21. size="mini"
  22. :readonly="sonDisable"
  23. clearable
  24. style="width: 200px"
  25. />
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="1.5">
  29. <el-form-item label="线路类型" prop="type" :rules="{ required: true, message: '请选择线路类型', trigger: 'blur' }">
  30. <el-select :disabled="sonDisable" v-model="basicForm.type" size="mini" style="width: 200px">
  31. <el-option v-for="dict in dict.type.mk_plan_route_type" :key="dict.value" :label="dict.label" :value="dict.value">
  32. </el-option>
  33. </el-select>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :span="1.5">
  37. <el-form-item label="执行人" prop="chargerName" :rules="{ required: true, message: '请选择执行人', trigger: 'blur' }">
  38. <el-select clearable size="mini" v-model="basicForm.chargerName" :disabled="sonDisable" @focus="choose('CONTACTS_PARAM', true, '执行人')" style="width: 200px">
  39. <el-option v-for="item in personOptions" :key="item.id" :label="item.name" :value="item.code" />
  40. </el-select>
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="1.5">
  44. <el-form-item label="确认状态" prop="state">
  45. <el-select disabled v-model="basicForm.state" size="mini" style="width: 200px">
  46. <el-option v-for="dict in dict.type.mk_plan_state" :key="dict.value" :label="dict.label" :value="dict.value">
  47. </el-option>
  48. </el-select>
  49. </el-form-item>
  50. </el-col>
  51. </el-row>
  52. <el-row :gutter="10">
  53. <el-col :span="1.5">
  54. <el-form-item label="开始时间" prop="startDate" :rules="{ required: true, message: '请选择开始时间', trigger: 'blur' }">
  55. <el-date-picker
  56. v-model="basicForm.startDate"
  57. :disabled="sonDisable"
  58. clearable
  59. type="date"
  60. value-format="yyyy-MM-dd"
  61. size="mini"
  62. style="width: 200px"
  63. >
  64. </el-date-picker>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :span="1.5">
  68. <el-form-item label="截止时间" prop="deadlineTime" :rules="{ required: true, message: '请选择截止时间', trigger: 'blur' }">
  69. <el-date-picker
  70. v-model="basicForm.deadlineTime"
  71. :disabled="sonDisable"
  72. clearable
  73. type="date"
  74. value-format="yyyy-MM-dd"
  75. size="mini"
  76. style="width: 200px"
  77. >
  78. </el-date-picker>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="1.5">
  82. <el-form-item label="销售区域" prop="marketingAreaName" :rules="{ required: true, message: '请选择销售区域', trigger: 'blur' }">
  83. <el-select clearable v-model="basicForm.marketingAreaName" size="mini" :disabled="sonDisable" @focus="choose('MK_SALESAREA_PARAM', true, '销售区域')" style="width: 200px">
  84. <el-option
  85. v-for="item in deptOptions"
  86. :key="item.id"
  87. :label="item.name"
  88. :value="item.code">
  89. </el-option>
  90. </el-select>
  91. </el-form-item>
  92. </el-col>
  93. <el-col :span="1.5">
  94. <el-form-item label="部门" prop="deptName">
  95. <el-select clearable v-model="basicForm.deptName" size="mini" :disabled="sonDisable" @focus="choose('DEPT_PARAM', true, '部门')" style="width: 200px">
  96. <el-option
  97. v-for="item in deptOptions"
  98. :key="item.id"
  99. :label="item.name"
  100. :value="item.code">
  101. </el-option>
  102. </el-select>
  103. </el-form-item>
  104. </el-col>
  105. </el-row>
  106. <span>明细信息</span>
  107. <div class="btn_grooup">
  108. <el-button type="primary" size="mini" @click="addLine" v-if="!sonDisable">增行</el-button>
  109. <el-button type="primary" size="mini" @click="copy" v-if="sonPageStu == 'check'">复制</el-button>
  110. <el-button type="primary" size="mini" @click="delItems" v-if="sonPageStu == 'edit'">批量删除</el-button>
  111. <el-button type="primary" size="mini" @click="edit" v-if="sonPageStu == 'check'">编辑</el-button>
  112. </div>
  113. <el-table
  114. :data="basicForm.mkBoPlanItemList"
  115. fit
  116. max-height="600"
  117. style="font-size: 12px;"
  118. @selection-change="handleSelectionChange"
  119. :cell-class-name="cellClassName"
  120. >
  121. <el-table-column type="selection" align="center"/>
  122. <el-table-column label="序号" type="index" align="center"/>
  123. <el-table-column show-overflow-tooltip label="计划编号" prop="planCode" width="150"/>
  124. <el-table-column show-overflow-tooltip label="日期" prop="date" width="230px">
  125. <template slot-scope="scope">
  126. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'date'" :rules="{ required: true, message: '请填写日期', trigger: 'blur' }">
  127. <el-date-picker
  128. v-model="scope.row.date"
  129. readonly
  130. clearable
  131. type="date"
  132. size="mini"
  133. value-format="yyyy-MM-dd"
  134. placeholder="选择日期">
  135. </el-date-picker>
  136. </el-form-item>
  137. </template>
  138. </el-table-column>
  139. <el-table-column show-overflow-tooltip label="客户名称" prop="customerName" min-width="230">
  140. <template slot-scope="scope">
  141. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'customerName'" :rules="{ required: true, message: '请选择客户', trigger: 'blur' }">
  142. <el-select clearable size="mini" v-model="scope.row.customerName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'CUSTOMER_PARAM_ZT', true, '客户')" style="width: 200px">
  143. <el-option v-for="item in customerOptions" :key="item.id" :label="item.name" :value="item.code" />
  144. </el-select>
  145. </el-form-item>
  146. </template>
  147. </el-table-column>
  148. <el-table-column show-overflow-tooltip label="联系人" prop="contactName" min-width="230">
  149. <template slot-scope="scope">
  150. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'contactName'" :rules="{ required: true, message: '请选择联系人', trigger: 'blur' }">
  151. <el-select clearable size="mini" v-model="scope.row.contactName" :disabled="sonDisable" @focus="chooseSon(scope.$index, 'LINKMAN_PARAM', true, '联系人', {})" style="width: 200px">
  152. <el-option v-for="item in linkOptions" :key="item.id" :label="item.name" :value="item.code" />
  153. </el-select>
  154. </el-form-item>
  155. </template>
  156. </el-table-column>
  157. <el-table-column show-overflow-tooltip label="详细地址" prop="address" min-width="200">
  158. <template slot-scope="scope">
  159. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'address'">
  160. <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.address"/>
  161. </el-form-item>
  162. </template>
  163. </el-table-column>
  164. <el-table-column show-overflow-tooltip label="拜访目的" prop="purpose" min-width="200">
  165. <template slot-scope="scope">
  166. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'purpose'" :rules="{ required: true, message: '请选择拜访目的', trigger: 'blur' }">
  167. <el-select clearable :disabled="sonDisable" v-model="scope.row.purpose" size="mini">
  168. <el-option v-for=" dict in dict.type.mk_bo_behavior_goal" :key="dict.value" :label="dict.label" :value="dict.value">
  169. </el-option>
  170. </el-select>
  171. </el-form-item>
  172. </template>
  173. </el-table-column>
  174. <el-table-column :readonly="sonDisable" show-overflow-tooltip label="商机" prop="boName" min-width="200">
  175. <template slot-scope="scope">
  176. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'boName'">
  177. <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.boName"/>
  178. </el-form-item>
  179. </template>
  180. </el-table-column>
  181. <el-table-column :readonly="sonDisable" show-overflow-tooltip label="营销活动" prop="marketingCampaign" min-width="200">
  182. <template slot-scope="scope">
  183. <el-form-item class="hang" :prop="'mkBoPlanItemList.' + scope.$index + '.' + 'marketingCampaign'">
  184. <el-input clearable :readonly="sonDisable" size="mini" v-model="scope.row.marketingCampaign"/>
  185. </el-form-item>
  186. </template>
  187. </el-table-column>
  188. <el-table-column
  189. fixed="right"
  190. label="操作"
  191. align="center"
  192. >
  193. <template slot-scope="scope">
  194. <el-button type="text" size="mini" :disabled="sonDisable" @click="delLine(scope.$index, scope.row)">删除</el-button>
  195. </template>
  196. </el-table-column>
  197. </el-table>
  198. </el-form>
  199. </el-card>
  200. <div class="btn_group">
  201. <el-col :span="1.5">
  202. <el-button type="primary" size="mini" plain @click="save" v-if="sonPageStu == 'add' || sonPageStu == 'edit'">保存</el-button>
  203. </el-col>
  204. <!-- <el-col :span="1.5" style="margin: 0 10px;">
  205. <el-button type="primary" size="mini" plain @click="submit" v-if="sonPageStu == 'check' && (row.status == '0' || row.status == '3')">提交</el-button>
  206. </el-col> -->
  207. <el-col :span="1.5" style="margin: 0 10px;">
  208. <el-button size="mini" plain @click="back">返回</el-button>
  209. </el-col>
  210. <Refers ref="refer" @doSubmit="selectionsToInput" :single="true"/>
  211. </div>
  212. </div>
  213. </template>
  214. <script>
  215. import {addPlan, getPlanDetail, editPlan, delPlanItem} from '@/api/business/spd/task_management/visitingPlan/visitingPlan.js'
  216. import Refers from '@/components/Refers/refers.vue'
  217. // 用于回显参照框数据
  218. import {getRefer} from '@/api/purchase/basic.js'
  219. export default {
  220. name: 'addPlanList',
  221. props: ['pageStu', 'row', 'disable'],
  222. dicts: ['mk_plan_state', 'mk_plan_route_type', 'mk_bo_behavior_goal'],
  223. components: {
  224. Refers
  225. },
  226. model: {
  227. prop: 'isList',
  228. event: 'jugislist'
  229. },
  230. data() {
  231. return {
  232. // 不能直接改变props传来的值
  233. sonPageStu: this.pageStu,
  234. sonDisable: this.disable,
  235. // dialog: {
  236. // config: false
  237. // },
  238. basicForm: {
  239. id: '',
  240. planCode: '',
  241. planName :'',
  242. charger: '',
  243. chargerName: this.$store.state.user.nickName,
  244. dept: '',
  245. deptName: this.$store.state.user.deptName,
  246. startDate: this.getNextWeek(1),
  247. deadlineTime: this.getNextWeek(7),
  248. type: '0',
  249. state: '0',
  250. marketingArea: '',
  251. marketingAreaName: '',
  252. mkBoPlanItemList: []
  253. },
  254. delPlanItemList: [],
  255. basicRules: {},
  256. tableList: [],
  257. referCondition: {
  258. type: '',
  259. isPage: true,
  260. title: '',
  261. },
  262. // referCondition: {
  263. // type: '',
  264. // isPage: true,
  265. // title: '',
  266. // },
  267. tableIndex: null,
  268. ids: [],
  269. linkOptions: [],
  270. manOptions: [],
  271. personOptions: [],
  272. deptOptions: [],
  273. customerOptions: [],
  274. salesAreaOptions: [],
  275. //判断默认明细行带出完毕后日期等于当前日期的标识
  276. isFlag: false
  277. }
  278. },
  279. updated() {},
  280. mounted() {},
  281. created() {
  282. //查看系统数据
  283. // console.log(this.$store.state.user, 'this.$store.state.user')
  284. if(this.pageStu == 'check') {
  285. console.log('数据', this.row)
  286. this.getDetails(this.row)
  287. } else if (this.pageStu == 'edit') {
  288. this.getDetails(this.row)
  289. } else if (this.pageStu == 'add') {
  290. //新增时默认带出7条明细行
  291. this.defaultDetailLine(7)
  292. }
  293. },
  294. methods:{
  295. copy() {
  296. this.isFlag = true;
  297. this.$modal.notifySuccess("复制成功");
  298. this.sonPageStu = 'add'
  299. this.sonDisable = false
  300. // this.getDetails(this.row)
  301. this.basicForm.id = ''
  302. this.basicForm.code = ''
  303. this.basicForm.createBy = ''
  304. this.basicForm.chargerName = this.$store.state.user.name
  305. this.basicForm.deptName = this.$store.state.user.deptId
  306. if (this.basicForm.chargerName) { this.reBackRefer('CONTACTS_PARAM', this.basicForm.chargerName) }
  307. if (this.basicForm.marketingAreaName) { this.reBackRefer('MK_SALESAREA_PARAM', this.basicForm.marketingAreaName) }
  308. if (this.basicForm.deptName) { this.reBackRefer('DEPT_PARAM', this.basicForm.deptName) }
  309. // this.basicForm.mkBoPlanItemList.forEach(item => {
  310. // item.date = ''
  311. // item.customer = ''
  312. // item.customerName = ''
  313. // item.contact = ''
  314. // item.contactName = ''
  315. // item.address = ''
  316. // item.purpose = ''
  317. // item.bo = ''
  318. // item.boName = ''
  319. // item.marketingCampaign = ''
  320. // })
  321. },
  322. handleData() {
  323. console.log('222')
  324. // 复制新增把id,编码,创建人置为空,子表去掉id
  325. this.basicForm.id = ''
  326. this.basicForm.planCode = ''
  327. this.basicForm.createBy = ''
  328. if (this.basicForm.mkBoPlanItemList.length !== 0) {
  329. this.basicForm.mkBoPlanItemList.forEach(item => {
  330. if (item.id) {
  331. delete item.id
  332. }
  333. if (item.planId) {
  334. delete item.planId
  335. }
  336. })
  337. }
  338. },
  339. // 如果需要回显则调用详情接口
  340. getDetails(row) {
  341. getPlanDetail(row.id).then(res => {
  342. if (res.code === 200) {
  343. // console.log('res', res)
  344. this.basicForm = res.data
  345. }
  346. })
  347. },
  348. async save() {
  349. if(this.basicForm.mkBoPlanItemList.length !== 0) {
  350. this.$refs['basic'].validate((valid) => {
  351. if(valid) {
  352. this.$modal.loading("保存中...");
  353. if(this.sonPageStu == 'add') {
  354. this.handleData()
  355. addPlan(this.basicForm).then(res => {
  356. console.log(333)
  357. if (res.code === 200) {
  358. this.$modal.msgSuccess("保存成功");
  359. this.$modal.closeLoading();
  360. this.back()
  361. }
  362. }).catch(err => {
  363. this.$modal.closeLoading();
  364. })
  365. } else if (this.sonPageStu == 'edit') {
  366. let list = []
  367. list.push(...this.basicForm.mkBoPlanItemList, ...this.delPlanItemList)
  368. // 深拷贝一下参数对象
  369. let param = JSON.parse(JSON.stringify(this.basicForm))
  370. console.log('深拷贝对象',param);
  371. param.mkBoPlanItemList = list
  372. // this.basicForm.mkBoPlanItemList.push(...this.delPlanItemList)
  373. editPlan(param).then(res => {
  374. if (res.code === 200) {
  375. this.$modal.msgSuccess("编辑成功");
  376. this.$modal.closeLoading();
  377. this.back()
  378. }
  379. }).catch(err => {
  380. this.$modal.closeLoading();
  381. })
  382. }
  383. }
  384. })
  385. } else {
  386. this.$modal.msgWarning("明细信息不能为空!");
  387. }
  388. },
  389. // submit() {
  390. // this.$modal.loading("提交中...");
  391. // submitDemand(this.basicForm).then(res => {
  392. // if (res.code === 200) {
  393. // this.$modal.msgSuccess("提交成功");
  394. // this.$modal.closeLoading();
  395. // this.back()
  396. // }
  397. // }).catch(err => {
  398. // this.$modal.closeLoading();
  399. // })
  400. // },
  401. // 增行
  402. addLine(date) {
  403. if (this.isFlag) {
  404. date = this.getCurrentTime();
  405. }
  406. const newLine = {
  407. contacts: null,
  408. id: null,
  409. planId: null,
  410. planCode: null,
  411. date: date,
  412. customer: null,
  413. customerName: null,
  414. contact: null,
  415. contactName: null,
  416. address: null,
  417. purpose: null,
  418. bo: null,
  419. boName: null,
  420. marketingCampaign: null,
  421. delFlag: 0,
  422. // 新增字段
  423. model: null,
  424. storageCondition: null,
  425. transportationCondition: null,
  426. }
  427. this.basicForm.mkBoPlanItemList.push(newLine)
  428. },
  429. // 批量删除按钮
  430. delItems() {
  431. if(this.ids.length == 0) {
  432. this.$modal.msgWarning("请选中至少一条数据");
  433. } else {
  434. let param = this.ids.join()
  435. this.$modal.confirm('确认信息').then(() => {
  436. delPlanItem(param).then(res => {
  437. if (res.code === 200) {
  438. this.$modal.msgSuccess("删除成功");
  439. this.getDetails(this.row)
  440. }
  441. })
  442. }).catch(() => {})
  443. }
  444. },
  445. delLine(index, row) {
  446. console.log('删除行:', index)
  447. console.log('改变行:', row)
  448. // this.basicForm.mkBoPlanItemList = this.basicForm.mkBoPlanItemList.filter(item => {
  449. // return item.id !== row.id
  450. // })
  451. row.delFlag = '2'
  452. // this.basicForm.mkBoPlanItemList.splice(index,1)
  453. let delList = []
  454. delList = this.basicForm.mkBoPlanItemList.filter(item => {
  455. return item.delFlag == '2'
  456. })
  457. this.basicForm.mkBoPlanItemList = this.basicForm.mkBoPlanItemList.filter(item => {
  458. return item.delFlag == '0'
  459. })
  460. this.delPlanItemList.push(...delList)
  461. console.log('删除的数组',this.delPlanItemList)
  462. },
  463. edit() {
  464. this.isFlag = true;
  465. this.sonPageStu = 'edit'
  466. this.sonDisable = false
  467. this.basicForm.mkBoPlanItemList.forEach(item => {
  468. item.planCode = this.basicForm.planCode
  469. })
  470. },
  471. back() {
  472. this.$emit('jugislist', true)
  473. // let queryParams = {
  474. // pageNum: 1,
  475. // pageSize: 10
  476. // }
  477. this.$emit('refresh')
  478. },
  479. // 如果需要回显则调用详情接口
  480. getDetails(row) {
  481. getPlanDetail(row.id).then(res => {
  482. if (res.code === 200) {
  483. this.basicForm = res.data
  484. for (let i = 0; i < this.basicForm.mkBoPlanItemList.length; i++) {
  485. this.basicForm.mkBoPlanItemList[i].planCode = res.data.planCode
  486. }
  487. }
  488. })
  489. },
  490. // 单元格标红
  491. cellClassName({row, column, rowIndex, columnIndex}) {
  492. if(this.basicForm.isSpeical == 'N' && column.label == '需求可用周期' && Number(row.demandPeriod) > 1.5 && Number(row.demandPeriod) > Number(row.minOrderQty)) {
  493. return 'success-row';
  494. }
  495. },
  496. // handleSelectionChange(selection) {
  497. // this.ids = selection.map(item =>{
  498. // return item.id
  499. // })
  500. // console.log('选中数组', this.ids)
  501. // },
  502. handleSelectionChange(selection) {
  503. console.log('选中', selection)
  504. this.ids = selection.map(item => item.id)
  505. console.log('选中数组', this.ids.join())
  506. },
  507. // 回显参照框
  508. reBackRefer(type, id, title) {
  509. getRefer({type: type, id: id}).then(res => {
  510. if(type == 'MK_SALESAREA_PARAM') {
  511. this.salesAreaOptions = res.rows
  512. }
  513. if (type == 'CUSTOMER_PARAM_ZT') {
  514. this.customerOptions = res.rows
  515. }
  516. if (type == 'CONTACTS_PARAM') {
  517. this.personOptions = res.rows
  518. }
  519. if (type == 'LINKMAN_PARAM') {
  520. this.linkOptions = res.rows
  521. }
  522. if (type == 'DEPT_PARAM') {
  523. this.deptOptions = res.rows
  524. }
  525. })
  526. },
  527. // 基本信息选择参照带出数据
  528. choose(type, isPage, title) {
  529. this.referCondition.type = type
  530. this.referCondition.isPage = isPage
  531. this.referCondition.title = title
  532. this.$refs.refer.init(this.referCondition)
  533. },
  534. // 明细行选择参照带出数据
  535. chooseSon(index, type, isPage, title, parame) {
  536. this.tableIndex = index
  537. this.referCondition.type = type
  538. this.referCondition.isPage = isPage
  539. this.referCondition.title = title
  540. this.referCondition.parame = parame
  541. this.$refs.refer.init(this.referCondition)
  542. },
  543. selectionsToInput(selection) {
  544. if(this.referCondition.type == 'CUSTOMER_PARAM_ZT') {
  545. this.customerOptions = selection
  546. this.basicForm.mkBoPlanItemList[this.tableIndex].customer = selection[0].id
  547. this.basicForm.mkBoPlanItemList[this.tableIndex].customerName = selection[0].name
  548. }
  549. if(this.referCondition.type == 'CONTACTS_PARAM') {
  550. this.personOptions = selection
  551. this.basicForm.charger = selection[0].id
  552. this.basicForm.chargerName = selection[0].name
  553. }
  554. if(this.referCondition.type == 'MK_SALESAREA_PARAM') {
  555. this.salesAreaOptions = selection
  556. this.basicForm.marketingArea = selection[0].id
  557. this.basicForm.marketingAreaName = selection[0].name
  558. }
  559. if(this.referCondition.type == 'DEPT_PARAM') {
  560. this.deptOptions = selection
  561. this.basicForm.dept = selection[0].id
  562. this.basicForm.deptName = selection[0].name
  563. }
  564. if(this.referCondition.type == 'LINKMAN_PARAM') {
  565. this.linkOptions = selection
  566. this.basicForm.mkBoPlanItemList[this.tableIndex].contact = selection[0].id
  567. this.basicForm.mkBoPlanItemList[this.tableIndex].contactName = selection[0].name
  568. }
  569. },
  570. //获取当前时间
  571. getCurrentTime() {
  572. let date = new Date();
  573. return date;
  574. },
  575. //获取下周七天日期,day表示想要星期几
  576. getNextWeek(day) {
  577. const week = [];
  578. for (let i = 0; i < 7; i++) {
  579. let Stamp = new Date();
  580. let num = 7-Stamp.getDay() + 1 + i;
  581. Stamp.setDate(Stamp.getDate() + num);
  582. week[i] = Stamp.getFullYear() + '-' + (Stamp.getMonth() + 1) + '-' + Stamp.getDate();
  583. }
  584. return week[day - 1];
  585. },
  586. //新增时默认带出num条明细行
  587. defaultDetailLine(num) {
  588. for (let i = 0; i < num; i++) {
  589. this.addLine(this.getNextWeek(i + 1));
  590. }
  591. this.isFlag = true;
  592. }
  593. }
  594. }
  595. </script>
  596. <style lang="scss" scoped>
  597. .btn_group {
  598. width: 100%;
  599. margin: 20px 0;
  600. display: flex;
  601. justify-content: center;
  602. }
  603. .btn_grooup {
  604. margin-bottom: 10px;
  605. display: flex;
  606. justify-content: flex-end;
  607. }
  608. .hang {
  609. margin: auto;
  610. }
  611. .hang ::v-deep .el-form-item__content{
  612. margin-left: 0px !important;
  613. }
  614. .el-table ::v-deep .el-form-item__error{
  615. padding-top: 0;
  616. top: 70%
  617. }
  618. .el-table ::v-deep .success-row {
  619. background: #f11616;
  620. }
  621. </style>