Edit.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  1. <template>
  2. <div class="container" v-loading="loading">
  3. <el-descriptions class="margin-top" title="订单详情" :column="2">
  4. <el-descriptions-item>
  5. <template slot="label">
  6. 项目编号
  7. </template>
  8. <span style="color: #5daf34">{{modelForm.order_no}}</span>
  9. </el-descriptions-item>
  10. <el-descriptions-item>
  11. <template slot="label">
  12. 项目名称
  13. </template>
  14. {{modelForm.name}}
  15. </el-descriptions-item>
  16. <el-descriptions-item>
  17. <template slot="label">
  18. 创建时间
  19. </template>
  20. {{modelForm.create_time | unixToDate}}
  21. </el-descriptions-item>
  22. <el-descriptions-item>
  23. <template slot="label">
  24. 销售
  25. </template>
  26. {{modelForm.sales}}
  27. </el-descriptions-item>
  28. <el-descriptions-item>
  29. <template slot="label">
  30. 相关负责人
  31. </template>
  32. <el-checkbox-group v-model="checkList">
  33. <el-checkbox v-for="(item, index) in userList" :key="index" :label="item.email" :value="item.email"> {{ item.user_name }}</el-checkbox>
  34. </el-checkbox-group>
  35. </el-descriptions-item>
  36. </el-descriptions>
  37. <el-button v-if="userList.length > 0" :disabled="checkList.length === 0" type="primary" style="margin: 10px;" @click="handleSendEmail">邮件通知</el-button>
  38. <el-tooltip class="item" effect="dark" content="方便销售填写增量订单和代理商复购订单" placement="top">
  39. <el-button type="success" style="margin: 10px;" @click="handleReset">订单复制</el-button>
  40. </el-tooltip>
  41. <el-steps :active="2" finish-status="error" simple v-if="modelForm.status === 6">
  42. <el-step title="创建定单" status="success"></el-step>
  43. <el-step title="已作废"></el-step>
  44. </el-steps>
  45. <el-steps v-else :active="modelForm.status + 1" finish-status="success" simple>
  46. <el-step title="创建定单"></el-step>
  47. <el-step title="技术跟进"></el-step>
  48. <el-step title="生产跟进"></el-step>
  49. <el-step title="收到款"></el-step>
  50. <el-step title="已发货"></el-step>
  51. <el-step title="已完结"></el-step>
  52. </el-steps>
  53. <el-divider></el-divider>
  54. <el-tabs tab-position="left" @tab-click="pjGoodsReload">
  55. <el-tab-pane label="项目信息">
  56. <div class="base-info-item">
  57. <el-descriptions class="margin-top" title="订单详情" :column="2" border>
  58. <el-descriptions-item>
  59. <template slot="label">
  60. 项目类型
  61. </template>
  62. {{modelForm.type}}
  63. </el-descriptions-item>
  64. <el-descriptions-item>
  65. <template slot="label">
  66. 项目规模
  67. </template>
  68. {{modelForm.scale}}
  69. </el-descriptions-item>
  70. <el-descriptions-item>
  71. <template slot="label">
  72. 要求发货日期
  73. </template>
  74. {{ modelForm.ship_date_required | unixToDate('yyyy-MM-dd') }}
  75. </el-descriptions-item>
  76. <el-descriptions-item>
  77. <template slot="label">
  78. 项目金额
  79. </template>
  80. {{modelForm.amount}}
  81. </el-descriptions-item>
  82. <el-descriptions-item v-if="boolFounder || permissions.filter(p => p === 'pjReceipt').length > 0">
  83. <template slot="label">
  84. 应收
  85. </template>
  86. {{modelForm.amount_receivable}}
  87. </el-descriptions-item>
  88. <el-descriptions-item v-if="boolFounder || permissions.filter(p => p === 'pjReceipt').length > 0">
  89. <template slot="label">
  90. 已收
  91. </template>
  92. {{modelForm.amount_receipts}}
  93. </el-descriptions-item>
  94. <el-descriptions-item v-if="modelForm.country">
  95. <template slot="label">
  96. 国家
  97. </template>
  98. {{modelForm.country}}
  99. </el-descriptions-item>
  100. <el-descriptions-item>
  101. <template slot="label">
  102. 客户地区
  103. </template>
  104. {{modelForm.province_name + modelForm.city_name + modelForm.county_name + modelForm.town_name}}
  105. </el-descriptions-item>
  106. </el-descriptions>
  107. <el-divider>收货信息</el-divider>
  108. <el-descriptions class="margin-top" :column="2" border>
  109. <el-descriptions-item>
  110. <template slot="label">
  111. 收货人
  112. </template>
  113. {{modelForm.consignee}}
  114. </el-descriptions-item>
  115. <el-descriptions-item>
  116. <template slot="label">
  117. 收货人电话
  118. </template>
  119. {{modelForm.phone}}
  120. </el-descriptions-item>
  121. <el-descriptions-item>
  122. <template slot="label">
  123. 收货地区
  124. </template>
  125. {{modelForm.ship_province + modelForm.ship_city + modelForm.ship_county + modelForm.ship_town}}
  126. </el-descriptions-item>
  127. </el-descriptions>
  128. <el-divider>其它</el-divider>
  129. <el-descriptions class="margin-top" :column="2" border>
  130. <el-descriptions-item>
  131. <template slot="label">
  132. 销售备注
  133. </template>
  134. {{modelForm.sales_remark}}
  135. </el-descriptions-item>
  136. </el-descriptions>
  137. <el-form :model="modelForm" :rules="modelFormRule" label-width="100px" ref="modelForm" style="margin-top: 10px">
  138. <el-form-item v-if="modelForm.status === 0 && (boolFounder || permissions.filter(p => p === 'pjOrderListSelf').length > 0)">
  139. <el-button type="primary" @click="handleCancel" class="save">作废</el-button>
  140. </el-form-item>
  141. <el-form-item v-if="modelForm.status === 6">
  142. <el-button type="success" @click="handleReset" class="save" :disabled="disable">重新生成</el-button>
  143. </el-form-item>
  144. </el-form>
  145. </div>
  146. </el-tab-pane>
  147. <el-tab-pane label="服务相关" v-if="boolFounder || permissions.filter(p => p === 'pjTech').length > 0">
  148. <el-form :model="modelForm" :rules="serverFormRule" label-width="100px" ref="serverForm">
  149. <el-row>
  150. <el-col :span="12">
  151. <el-form-item label="网络类型" prop="net_mode">
  152. <el-select v-model="modelForm.net_mode" placeholder="请选择" @change="netModelChange" clearable>
  153. <el-option label="独立局域网" value="独立局域网"/>
  154. <el-option label="非独立局域网" value="非独立局域网"/>
  155. <el-option label="公网" value="公网"/>
  156. </el-select>
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="12">
  160. <el-form-item label="信息科联系人" prop="info_contacts">
  161. <el-input v-model="modelForm.info_contacts" placeholder="请输入信息科联系人及电话" :maxlength="50"></el-input>
  162. </el-form-item>
  163. </el-col>
  164. </el-row>
  165. <el-row>
  166. <el-col :span="12">
  167. <el-form-item label="护理部联系人" prop="nurse_contacts">
  168. <el-input v-model="modelForm.nurse_contacts" placeholder="请输入护理部联系人及电话" :maxlength="50"></el-input>
  169. </el-form-item>
  170. </el-col>
  171. <el-col :span="12">
  172. <el-form-item label="设备科联系人" prop="device_contacts">
  173. <el-input v-model="modelForm.device_contacts" placeholder="请输入设备科联系人及电话" :maxlength="50"></el-input>
  174. </el-form-item>
  175. </el-col>
  176. </el-row>
  177. <el-row>
  178. <el-col :span="12">
  179. <el-form-item label="授权码" prop="auth_base">
  180. <el-input v-model="modelForm.auth_base" :maxlength="50"></el-input>
  181. </el-form-item>
  182. </el-col>
  183. <el-col :span="12">
  184. <el-form-item label="授权过期日" prop="auth_expires">
  185. <el-input v-model="modelForm.auth_expires" :maxlength="20"></el-input>
  186. </el-form-item>
  187. </el-col>
  188. </el-row>
  189. <el-row>
  190. <el-col :span="12">
  191. <el-form-item label="授权序列号" prop="auth_code">
  192. <el-input v-model="modelForm.auth_code" type="textarea"
  193. :autosize="{ minRows: 2, maxRows: 6}"
  194. :minlength="50"></el-input>
  195. </el-form-item>
  196. </el-col>
  197. <el-col :span="12">
  198. <el-form-item label="授权计划备注" prop="auth_remark">
  199. <el-input v-model="modelForm.auth_remark" type="textarea"
  200. :autosize="{ minRows: 2, maxRows: 6}"
  201. :minlength="150"></el-input>
  202. </el-form-item>
  203. </el-col>
  204. </el-row>
  205. <el-row>
  206. <el-col :span="12">
  207. <el-form-item label="pve_ip" prop="pve_ip">
  208. <el-input v-model="modelForm.pve_ip" :maxlength="20"></el-input>
  209. </el-form-item>
  210. </el-col>
  211. <el-col :span="12">
  212. <el-form-item label="pve_user" prop="pve_user">
  213. <el-input v-model="modelForm.pve_user" :maxlength="20"></el-input>
  214. </el-form-item>
  215. </el-col>
  216. </el-row>
  217. <el-row>
  218. <el-col :span="12">
  219. <el-form-item label="pve_pwd" prop="pve_pwd">
  220. <el-input v-model="modelForm.pve_pwd" :maxlength="20"></el-input>
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="12">
  224. <el-form-item label="route_ip" prop="route_ip">
  225. <el-input v-model="modelForm.route_ip" :maxlength="20"></el-input>
  226. </el-form-item>
  227. </el-col>
  228. </el-row>
  229. <el-row>
  230. <el-col :span="12">
  231. <el-form-item label="route_ip2" prop="route_ip2">
  232. <el-input v-model="modelForm.route_ip2" :maxlength="20"></el-input>
  233. </el-form-item>
  234. </el-col>
  235. <el-col :span="12">
  236. <el-form-item label="route_user" prop="route_user">
  237. <el-input v-model="modelForm.route_user" :maxlength="20"></el-input>
  238. </el-form-item>
  239. </el-col>
  240. </el-row>
  241. <el-row>
  242. <el-col :span="12">
  243. <el-form-item label="route_pwd" prop="route_pwd">
  244. <el-input v-model="modelForm.route_pwd" :maxlength="20"></el-input>
  245. </el-form-item>
  246. </el-col>
  247. <el-col :span="12">
  248. <el-form-item label="linux_ip" prop="linux_ip">
  249. <el-input v-model="modelForm.linux_ip" :maxlength="20"></el-input>
  250. </el-form-item>
  251. </el-col>
  252. </el-row>
  253. <el-row>
  254. <el-col :span="12">
  255. <el-form-item label="linux_ip2" prop="linux_ip2">
  256. <el-input v-model="modelForm.linux_ip2" :maxlength="20"></el-input>
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="12">
  260. <el-form-item label="linux_user" prop="linux_user">
  261. <el-input v-model="modelForm.linux_user" :maxlength="20"></el-input>
  262. </el-form-item>
  263. </el-col>
  264. </el-row>
  265. <el-form-item label="linux_pwd" prop="linux_pwd">
  266. <el-input v-model="modelForm.linux_pwd" :maxlength="20"></el-input>
  267. </el-form-item>
  268. <el-form-item label="其它备注:" class="description">
  269. <UE ref="ue" :defaultMsg="modelForm.tech_remark"></UE>
  270. </el-form-item>
  271. <el-form-item>
  272. <el-button type="primary" @click="handleTech" class="save">保存</el-button>
  273. <el-button v-if="modelForm.status === 1" type="danger" @click="handleTechCancel" class="save">退回</el-button>
  274. <el-button v-if="modelForm.status === 4" type="success" @click="handleFinished" class="save">定单完成</el-button>
  275. </el-form-item>
  276. </el-form>
  277. </el-tab-pane>
  278. <el-tab-pane label="项目产品">
  279. <pj-order-items :order-no="orderNo" :type="modelForm.type"></pj-order-items>
  280. </el-tab-pane>
  281. <el-tab-pane label="收款明细" v-if="boolFounder || permissions.filter(p => p === 'pjReceipt').length > 0">
  282. <pj-receipt :order-no="orderNo"></pj-receipt>
  283. </el-tab-pane>
  284. <el-tab-pane label="生产发货情况">
  285. <!-- <div class="base-info-item">-->
  286. <!-- <el-form :model="modelForm" label-width="100px">-->
  287. <!-- <el-form-item label="发货人" prop="logistics_name">-->
  288. <!-- <el-input v-model="modelForm.logistics_name" :maxlength="20" :disabled="true"></el-input>-->
  289. <!-- </el-form-item>-->
  290. <!-- <el-form-item label="发货日期" prop="ship_date">-->
  291. <!-- <el-date-picker-->
  292. <!-- v-model="modelForm.ship_date"-->
  293. <!-- align="right"-->
  294. <!-- type="date"-->
  295. <!-- placeholder="选择日期"-->
  296. <!-- :picker-options="{disabledDate(time) { return time.getTime() >= Date.now() }}">-->
  297. <!-- </el-date-picker>-->
  298. <!-- </el-form-item>-->
  299. <!-- <el-form-item label="签收单:" prop="receipt_file" style="width: 90%;text-align: left;" v-if="boolFounder || permissions.filter(p => p === 'pjOrderShip').length > 0">-->
  300. <!-- <el-upload-->
  301. <!-- class="avatar-uploader"-->
  302. <!-- :action="`${MixinUploadApi}?scene=pjorders`"-->
  303. <!-- :on-preview="handlePictureCardPreview"-->
  304. <!-- :show-file-list="false"-->
  305. <!-- :before-upload="beforeAvatarUpload"-->
  306. <!-- :on-success="handleImageSuccess"-->
  307. <!-- >-->
  308. <!-- <img v-if="modelForm.receipt_file" :src="modelForm.receipt_file" class="avatar">-->
  309. <!-- <i v-else class="el-icon-plus avatar-uploader-icon"></i>-->
  310. <!-- </el-upload>-->
  311. <!-- <el-dialog :visible.sync="dialogImage">-->
  312. <!-- <img width="100%" :src="dialogImageUrl" alt="">-->
  313. <!-- </el-dialog>-->
  314. <!-- </el-form-item>-->
  315. <!-- <el-form-item v-if="boolFounder || permissions.filter(p => p === 'pjOrderShip').length > 0">-->
  316. <!-- <el-button type="primary" @click="handleLogisticsSave" class="save">保存</el-button>-->
  317. <!-- </el-form-item>-->
  318. <!-- </el-form>-->
  319. <!-- </div>-->
  320. <pj-shipped-list :order-no="orderNo"></pj-shipped-list>
  321. </el-tab-pane>
  322. <el-tab-pane label="通用备注">
  323. <pj-remark-list :table-name="'pj_order'" :table-id="keyId"></pj-remark-list>
  324. </el-tab-pane>
  325. </el-tabs>
  326. </div>
  327. </template>
  328. <script>
  329. import * as API_order from '@/api/pjOrder'
  330. import * as API_pjChargePerson from '@/api/pjChargePerson'
  331. import { UE } from '@/components'
  332. import { RegExp } from '~/ui-utils'
  333. import pjOrderItems from './OrderItems'
  334. import pjReceipt from './Receipt'
  335. import pjRemarkList from './Remark'
  336. import pjShippedList from './shipped'
  337. import Storage from '../../utils/storage'
  338. import * as API_Draft from '@/api/pjDraft'
  339. import { sendEmail } from '../../api/pjChargePerson'
  340. export default {
  341. name: 'pjOrderEdit',
  342. components: {
  343. [UE.name]: UE, pjOrderItems, pjReceipt, pjRemarkList, pjShippedList
  344. },
  345. data() {
  346. const checkHtml = (rule, value, callback) => {
  347. if (value.match(/<[^>]+>/g)) {
  348. callback(new Error('产品名称不合法!'))
  349. } else {
  350. callback()
  351. }
  352. }
  353. const checkSn = (rule, value, callback) => {
  354. if (!value) {
  355. callback(new Error('生产型号/产品编码不能为空'))
  356. } else if (!/^[a-zA-Z0-9_\\-]+$/g.test(value)) {
  357. callback(new Error('请输入数字、字母、下划线或者中划线'))
  358. } else {
  359. callback()
  360. }
  361. }
  362. return {
  363. boolFounder: JSON.parse(Storage.getItem('admin_user')).founder === 1,
  364. permissions: [],
  365. /** 加载中。。。 */
  366. loading: false,
  367. keyId: 0,
  368. orderNo: '',
  369. modelForm: {
  370. ship_date_required: ''
  371. },
  372. /** 商品图片放大地址 */
  373. dialogImageUrl: '',
  374. /** 是否显示放大图片弹框 */
  375. dialogImage: false,
  376. /** 商品详情的校验规则 */
  377. modelFormRule: {
  378. name: [
  379. { required: true, message: '请输入项目名称', trigger: 'blur' },
  380. { whitespace: true, message: '项目名称不可为纯空格', trigger: 'blur' },
  381. { min: 2, max: 30, message: '长度在 2 到 30 个字符', trigger: 'blur' },
  382. { validator: checkHtml }
  383. ]
  384. },
  385. serverFormRule: {},
  386. disable: false,
  387. checkList: [],
  388. userList: []
  389. }
  390. },
  391. mounted() {
  392. if (!this.boolFounder) {
  393. this.permissions = JSON.parse(Storage.getItem('permissions'))
  394. }
  395. if (this.$route.params && this.$route.params.id !== 0) {
  396. if (this.$route.params.id.length > 11) {
  397. this.orderNo = this.$route.params.id
  398. } else {
  399. this.keyId = parseInt(this.$route.params.id)
  400. }
  401. this.getData()
  402. }
  403. },
  404. activated() {
  405. if (this.$route.params && this.$route.params.id !== 0) {
  406. if (this.$route.params.id.length > 11) {
  407. this.orderNo = this.$route.params.id
  408. } else {
  409. this.keyId = parseInt(this.$route.params.id)
  410. }
  411. this.getData()
  412. }
  413. },
  414. methods: {
  415. getData() {
  416. if (this.keyId) {
  417. API_order.getModel(this.keyId).then(res => {
  418. console.log(res)
  419. this.modelForm = res
  420. this.orderNo = res.order_no
  421. if (this.modelForm.ship_date) {
  422. this.modelForm.ship_date *= 1000
  423. }
  424. this.API_GetUserList()
  425. })
  426. } else {
  427. API_order.getModelByOrderNo(this.orderNo).then(res => {
  428. console.log(res)
  429. this.modelForm = res
  430. this.keyId = res.id
  431. if (this.modelForm.ship_date) {
  432. this.modelForm.ship_date *= 1000
  433. }
  434. this.API_GetUserList()
  435. })
  436. }
  437. },
  438. API_GetUserList() {
  439. const data = {
  440. fixedCondition: ' order_no = ' + this.orderNo,
  441. page_no: 1,
  442. page_size: 1000
  443. }
  444. API_pjChargePerson.getList(data).then(res => {
  445. this.userList = res.data
  446. })
  447. },
  448. pjGoodsReload(tab, event) {
  449. if (tab.index === '0') {
  450. this.getData()
  451. }
  452. },
  453. handleSave() {
  454. this.$refs['modelForm'].validate((valid) => {
  455. if (valid) {
  456. this.loading = true
  457. let _params = {
  458. ...this.modelForm
  459. }
  460. if (_params.ship_date_required) {
  461. _params.ship_date_required /= 1000
  462. }
  463. if (this.modelForm.ship_date) {
  464. _params.ship_date /= 1000
  465. }
  466. _params.sales_remark = this.$refs['ue'].getUEContent()
  467. _params.id = this.keyId
  468. API_order.editModel(_params).then(response => {
  469. this.loading = false
  470. this.$message.success('保存成功')
  471. })
  472. } else {
  473. this.loading = false
  474. this.$message.error('表单中存在未填写或者填写有误的地方,已有错误标示,请检查并正确填写')
  475. }
  476. })
  477. return
  478. },
  479. handlePictureCardPreview(file) {
  480. this.dialogImageUrl = file.url
  481. this.dialogImage = true
  482. },
  483. /** 图片上传之前的校验 */
  484. beforeAvatarUpload(file) {
  485. const isType = file.type === 'image/jpeg' || file.type === 'image/jpg' || file.type === 'image/png'
  486. const isLt1M = file.size / 1024 / 1024 < 1
  487. if (!isType) {
  488. this.$message.error('上传图片只能是 JPG/JPEG/PNG 格式!')
  489. }
  490. if (!isLt1M) {
  491. this.$message.error('上传图片大小不能超过 1MB!')
  492. }
  493. return isType && isLt1M
  494. },
  495. /** 文件列表上传成功时的钩子 上传成功校验 */
  496. async handleImageSuccess(response, file) {
  497. if (file.status === 'success') {
  498. this.modelForm.receipt_file = response.url
  499. }
  500. },
  501. handleLogisticsSave() {
  502. const adminUser = JSON.parse(Storage.getItem('admin_user'))
  503. // console.log(adminUser)
  504. this.modelForm.logistics_user = adminUser.uid
  505. this.modelForm.logistics_name = adminUser.realname
  506. this.modelForm.status = 4
  507. if (this.modelForm.ship_date) {
  508. this.modelForm.ship_date /= 1000
  509. }
  510. API_order.editModel(this.modelForm).then(response => {
  511. this.$message.success('保存成功')
  512. this.modelForm.ship_date *= 1000
  513. })
  514. },
  515. netModelChange(val) {
  516. if (val === '独立局域网') {
  517. if (!this.modelForm.pve_ip) {
  518. this.modelForm.pve_ip = '172.28.100.8'
  519. this.modelForm.pve_user = 'root'
  520. this.modelForm.pve_pwd = '123qwe,.'
  521. this.modelForm.route_ip = '172.28.100.1'
  522. this.modelForm.route_user = 'root'
  523. this.modelForm.route_pwd = '123qwe,.'
  524. this.modelForm.linux_ip = '172.28.100.100'
  525. this.modelForm.linux_user = 'root'
  526. this.modelForm.linux_pwd = '123qwe,.'
  527. }
  528. } else {
  529. this.modelForm.pve_ip = ''
  530. this.modelForm.pve_user = ''
  531. this.modelForm.pve_pwd = ''
  532. this.modelForm.route_ip = ''
  533. this.modelForm.route_user = ''
  534. this.modelForm.route_pwd = ''
  535. this.modelForm.linux_ip = ''
  536. this.modelForm.linux_user = ''
  537. this.modelForm.linux_pwd = ''
  538. }
  539. },
  540. handleTech() {
  541. if (this.modelForm.status === 0) {
  542. this.modelForm.status = 1
  543. }
  544. const adminUser = JSON.parse(Storage.getItem('admin_user'))
  545. this.modelForm.tech_user = adminUser.uid
  546. this.modelForm.tech_name = adminUser.realname
  547. API_order.editModel(this.modelForm).then(response => {
  548. this.$message.success('完成')
  549. }).catch()
  550. },
  551. handleTechCancel() {
  552. if (this.modelForm.status === 1) {
  553. this.modelForm.status = 0
  554. }
  555. API_order.editModel(this.modelForm).then(response => {
  556. this.$message.success('完成')
  557. }).catch()
  558. },
  559. handleFinished() {
  560. if (this.modelForm.status === 4) {
  561. this.modelForm.status = 5
  562. }
  563. API_order.editModel(this.modelForm).then(response => {
  564. this.$message.success('完成')
  565. }).catch()
  566. },
  567. handleCancel() {
  568. if (this.modelForm.status !== 0) {
  569. this.$message.warning('当前状态不可作废')
  570. return
  571. }
  572. this.modelForm.status = 6
  573. API_order.editModel(this.modelForm).then(response => {
  574. this.$message.success('完成')
  575. this.getData()
  576. // this.$store.dispatch('delCurrentViews', {
  577. // view: this.$route,
  578. // $router: this.$router
  579. // })
  580. }).catch()
  581. },
  582. handleReset() {
  583. this.$confirm('确定要重新申请草稿吗?', '提示', { type: 'warning' }).then(() => {
  584. this.disable = true
  585. this.$message.info('正在生成中...')
  586. API_Draft.resetDraft(this.modelForm.order_no).then(res => {
  587. this.$message.success('完成')
  588. this.$router.push({ name: 'pjDraftListSelf' })
  589. }).catch(() => {
  590. this.disable = false
  591. })
  592. }).catch(() => {})
  593. },
  594. handleSendEmail() {
  595. let list = []
  596. let x = ['00:00', '00:01', '24:00']
  597. let data = []
  598. x.forEach(item => {
  599. list.forEach(t => {
  600. if (item === t.log_time) {
  601. data.push(t.value)
  602. } else {
  603. data.push(0)
  604. }
  605. })
  606. })
  607. console.log('-------', this.checkList)
  608. API_pjChargePerson.sendEmail(this.checkList, this.modelForm.order_no).then(res => {
  609. if (res.success) {
  610. this.checkList = []
  611. this.$message.success('发送成功')
  612. } else {
  613. this.$message.error(res.message)
  614. }
  615. })
  616. }
  617. }
  618. }
  619. </script>
  620. <style type="text/scss" lang="scss" scoped>
  621. .container {
  622. background-color: #fff;
  623. }
  624. div.base-info-item {
  625. h4 {
  626. margin-bottom: 10px;
  627. padding: 0 10px;
  628. border: 1px solid #ddd;
  629. background-color: #f8f8f8;
  630. font-weight: bold;
  631. color: #333;
  632. font-size: 14px;
  633. line-height: 40px;
  634. text-align: left;
  635. }
  636. /** 审核信息-拒绝原因 */
  637. .auth-info {
  638. color: red;
  639. }
  640. .el-form-item {
  641. width: 30%;
  642. min-width: 300px;
  643. }
  644. .goods-name-width {
  645. width: 50%;
  646. min-width: 300px;
  647. }
  648. .el-form-item__content {
  649. margin-left: 120px;
  650. text-align: left;
  651. }
  652. p.goods-group-manager {
  653. padding-left: 7.5%;
  654. text-align: left;
  655. color: #999;
  656. font-size: 13px;
  657. }
  658. /*teatarea*/
  659. /deep/ .el-textarea {
  660. width: 150%;
  661. }
  662. .description {
  663. line-height: 40px;
  664. width: 100%;
  665. }
  666. }
  667. .avatar-uploader .el-upload {
  668. border: 1px dashed #d9d9d9;
  669. border-radius: 6px;
  670. cursor: pointer;
  671. position: relative;
  672. overflow: hidden;
  673. }
  674. .avatar-uploader .el-upload:hover {
  675. border-color: #409EFF;
  676. }
  677. .avatar-uploader-icon {
  678. font-size: 28px;
  679. color: #8c939d;
  680. width: 178px;
  681. height: 178px;
  682. line-height: 178px;
  683. text-align: center;
  684. }
  685. .avatar {
  686. width: 178px;
  687. height: 178px;
  688. display: block;
  689. }
  690. </style>