salesPlanLook.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. // 查看销售计划
  2. <template>
  3. <div class="container">
  4. <el-row>
  5. <el-col :span="12">
  6. <h2 class="bg-left title">查看销售计划</h2>
  7. </el-col>
  8. <el-col :span="12" class="bg-right">
  9. <el-button class="bg-bottom" type="primary" size="small" @click="returnsales()">
  10. <img
  11. width="6"
  12. height="10"
  13. style="vertical-align: bottom; margin-right: 3px"
  14. src="../../../public/img/lujing.png"
  15. alt
  16. />返回
  17. </el-button>
  18. </el-col>
  19. </el-row>
  20. <div class="basicInformation">
  21. <el-radio-group @change="tasktypechange" v-model="dataList.taskTypeKey"></el-radio-group>
  22. <div class="center1">
  23. <div class="small-title">
  24. <h3>基本信息</h3>
  25. </div>
  26. <el-form ref="dataList" :model="dataList" label-width="140px">
  27. <!-- 标题 -->
  28. <el-form-item label="标题">
  29. <el-input disabled v-model="dataList.title" class="typeselect"></el-input>
  30. </el-form-item>
  31. <!-- 货名 -->
  32. <el-form-item label="货名">
  33. <el-input disabled v-model="dataList.goodsName" class="typeselect"></el-input>
  34. </el-form-item>
  35. <!-- 计划销售量(吨) -->
  36. <el-form-item label="计划销售量(吨)">
  37. <el-input disabled v-model="dataList.plannedSaleVolume" class="typeselect"></el-input>
  38. </el-form-item>
  39. <!-- 最小成交量(吨) -->
  40. <el-form-item label="最小成交量(吨)">
  41. <el-input disabled v-model="dataList.minimumVolume"></el-input>
  42. </el-form-item>
  43. <!--类型-->
  44. <el-form-item label="类型" span="1">
  45. <el-input disabled v-model="dataList.salePlanType" maxlength="120" />
  46. </el-form-item>
  47. <!-- 价格类型 -->
  48. <el-form-item label="价格类型">
  49. <el-input v-model="dataList.priceType" placeholder class="typeselect" disabled></el-input>
  50. </el-form-item>
  51. <ws-form-item v-show="dataList.salePlanType=='期货'" label="基差(元/吨)" span="1" prop="basisPrice">
  52. <el-input v-model="dataList.basisPrice" disabled maxlength="120" size="small" />
  53. </ws-form-item>
  54. <!--销售价格(元)-->
  55. <ws-form-item v-show="dataList.salePlanType=='现货'" label="销售价格(元)" span="1" prop="salePrice">
  56. <el-input
  57. disabled
  58. v-model="dataList.salePrice"
  59. maxlength="120"
  60. size="small"
  61. />
  62. </ws-form-item>
  63. <!--出货库-->
  64. <el-form-item label="出货库" span="1">
  65. <el-input disabled v-model="dataList.sendWarehouse" maxlength="120" size="small" />
  66. </el-form-item>
  67. <!--出货库所在地区-->
  68. <el-form-item label="出货库所在地区" span="1">
  69. <div class="forlist">
  70. {{dataList.sendPrivate}}{{dataList.sendCity}}{{dataList.sendArea}}
  71. </div>
  72. </el-form-item>
  73. <!--运费承担方-->
  74. <el-form-item label="运费承担方">
  75. <el-input disabled v-model="dataList.freightPayer" maxlength="120" size="small" />
  76. </el-form-item>
  77. <!--包装方式-->
  78. <el-form-item label="包装方式">
  79. <el-input disabled v-model="dataList.packingType" filterable :filter-method="dataFilter"></el-input>
  80. </el-form-item>
  81. <!--装袋备注=-->
  82. <el-form-item label="装袋备注" v-if="dataList.packingType == '大袋' || dataList.packingType == '小袋'">
  83. <el-input disabled v-model="dataList.baggingNotes" size="small" />
  84. </el-form-item>
  85. <!-- 卖方 -->
  86. <el-form-item label="卖方">
  87. <el-input disabled v-model="dataList.seller" maxlength="120" size="small" />
  88. </el-form-item>
  89. <!-- 卖方电话 -->
  90. <el-form-item label="卖方电话">
  91. <el-input disabled v-model="dataList.sellerPhone" filterable :filter-method="dataFilter"></el-input>
  92. </el-form-item>
  93. <div class="small-title"></div>
  94. </el-form>
  95. </div>
  96. <div class="center1">
  97. <div class="small-title">
  98. <h3>货物要求</h3>
  99. </div>
  100. <el-form ref="dataList" :model="dataList" label-width="140px">
  101. <el-form-item label="水分(%)<=">
  102. <el-input disabled v-model="dataList.waterContent" class="typeselect" />
  103. </el-form-item>
  104. <!-- 容重 -->
  105. <el-form-item label="容重(g/l)<=">
  106. <el-input disabled v-model="dataList.bulkDensity" class="typeselect" />
  107. </el-form-item>
  108. <!-- 热损伤 -->
  109. <el-form-item label="热损伤(%)<=">
  110. <el-input disabled v-model="dataList.jiaorenli" class="typeselect" />
  111. </el-form-item>
  112. <!-- 杂质 -->
  113. <el-form-item label="杂质(%)<=">
  114. <el-input disabled v-model="dataList.impurity" class="typeselect" />
  115. </el-form-item>
  116. <!-- 霉变粒 -->
  117. <el-form-item label="霉变粒(%)<=">
  118. <el-input disabled v-model="dataList.mildewGrain" />
  119. </el-form-item>
  120. <!--不完善粒(%)<=-->
  121. <el-form-item label="不完善粒(%)<=" span="1">
  122. <el-input disabled v-model="dataList.imperfectGrain" maxlength="120" />
  123. </el-form-item>
  124. <!-- 蛋白(%)<= -->
  125. <el-form-item label="蛋白(%)<=" span="1">
  126. <el-input v-model="dataList.protein" placeholder class="typeselect" disabled />
  127. </el-form-item>
  128. <!--粒形-->
  129. <el-form-item label="粒形" span="1">
  130. <el-input disabled v-model="dataList.grain" maxlength="120" size="small" />
  131. </el-form-item>
  132. <!--水分(%)<=-->
  133. <el-form-item label="品级" span="1">
  134. <el-input disabled v-model="dataList.grade" maxlength="120" size="small" />
  135. </el-form-item>
  136. <!--产地-->
  137. <el-form-item label="产地" span="1">
  138. <div class="forlist">
  139. {{dataList.outputPrivate}}{{dataList.outputCity}}
  140. </div>
  141. </el-form-item>
  142. <!--产出年份-->
  143. <el-form-item label="产出年份" span="1" prop="outputYear">
  144. <el-date-picker
  145. disabled
  146. v-model="dataList.outputYear"
  147. type="year"
  148. align="right"
  149. unlink-panels
  150. range-separator="至"
  151. placeholder="产出年份"
  152. ></el-date-picker>
  153. </el-form-item>
  154. </el-form>
  155. </div>
  156. </div>
  157. <!-- 关闭 -->
  158. <div style="text-align: right; padding: 10px" class="center">
  159. <el-button class="bg-bottom" type="primary" size="small" @click="close()">关闭</el-button>
  160. </div>
  161. </div>
  162. </template>
  163. <script>
  164. import {
  165. saleLook,
  166. } from '@/model/salesManagement/index'
  167. import { packList } from '@/model/contarct/index'
  168. import { pullDown, getstaff } from '@/model/warehouse/index'
  169. import { downloadFile } from '@/utils/batchDown'
  170. import Pagination from '@/components/Pagination'
  171. import { mapActions, mapGetters, mapState } from 'vuex'
  172. import WsUpload from '@/components/WsUpload'
  173. // import { dayjs, fmoney, EventBus } from 'base-core-lib'
  174. import { dayjs, EventBus } from 'base-core-lib'
  175. export default {
  176. name: 'viewSpareMoney',
  177. components: {
  178. WsUpload,
  179. Pagination
  180. },
  181. watch: {
  182. // vesselId(val) {
  183. // this.getList()
  184. // },
  185. isShow(val) {
  186. this.showType = val
  187. }
  188. },
  189. computed: {
  190. ...mapGetters(['deptBudgetList'])
  191. },
  192. data() {
  193. return {
  194. //弹出框
  195. dialogViewSpareMoney: false,
  196. dialogApproveFormVisible: false,
  197. // 船舶类型
  198. monetaryKey: null,
  199. // 表格显示数据
  200. tableDate: [],
  201. // 是否显示
  202. showType: true,
  203. // 年
  204. year: '',
  205. contractNoList: [],
  206. deptBudgetTotal: 0,
  207. readonly: true,
  208. currentPage: 1,
  209. pageSize: 10,
  210. searchType: 1,
  211. searchKeyWord: '',
  212. radio: '1',
  213. contractType: 2,
  214. startDate: null,
  215. endDate: null,
  216. goodnameList: [],
  217. checked: true,
  218. form: {},
  219. staffList: [],
  220. options: [],
  221. storageType: [],
  222. storageType1: [],
  223. outContractNo: [],
  224. // 提交类型
  225. submitType: true,
  226. status: [],
  227. unitPricechange: [],
  228. warehouseNameList: [],
  229. warehouseNameList1: [],
  230. waterContentchange: [],
  231. appendixIdsAdd: '',
  232. uploadSuccess: {},
  233. warehouseInOutDetail: {},
  234. onChange: {},
  235. deptBudgetList1: [],
  236. gradeList: [],
  237. rules: {
  238. netWeight: [
  239. {
  240. required: true,
  241. type: 'number',
  242. message: '请输入活动名称',
  243. trigger: 'blur'
  244. }
  245. ]
  246. },
  247. size: 10,
  248. compId: sessionStorage.getItem('ws-pf_compId'),
  249. deptCircularPage: {},
  250. packtypeList: {},
  251. date: {
  252. year: dayjs().format('YYYY'),
  253. month: dayjs().format('MM')
  254. },
  255. contractList: [],
  256. inOutTaskNo: '',
  257. inOutTaskNo1: '',
  258. dataList: { taskTypeKey: '1' },
  259. dataList1: { taskTypeKey: '1' },
  260. historyList: [],
  261. pickerBeginDateBefore: {
  262. disabledDate: time => {
  263. return time.getTime() > Date.now()
  264. }
  265. },
  266. accessoryTFs: false
  267. }
  268. },
  269. activated() {
  270. this.getList()
  271. this.showType = this.isShow
  272. },
  273. mounted() {
  274. this.dataList.id = this.$route.query.id
  275. },
  276. methods: {
  277. //返回按钮
  278. returnsales() {
  279. this.$router.go(-1)
  280. },
  281. // 获取当前年月日
  282. getdate() {
  283. var date = new Date()
  284. var year = date.getFullYear() //获取完整的年份(4位)
  285. var mouth = date.getMonth() + 1 //获取当前月份(0-11,0代表1月)
  286. var datetime = date.getDate() //获取当前日(1-31)
  287. if (mouth < 10) {
  288. mouth = '0' + mouth
  289. }
  290. if (datetime < 10) {
  291. datetime = '0' + datetime
  292. }
  293. return year + mouth + datetime
  294. },
  295. // 随机验证码
  296. verifyinit() {
  297. var arr = []
  298. for (var i = 48; i < 123; i++) {
  299. if (i > 57 && i < 65) continue
  300. if (i > 90 && i < 97) continue
  301. arr.push(String.fromCharCode(i))
  302. }
  303. arr.sort(function() {
  304. return Math.random() - 0.5
  305. })
  306. arr.length = 4
  307. return arr.join('')
  308. },
  309. dataFilter(val) {
  310. // console.log(val,"名")
  311. this.deptBudgetList.staffList = val
  312. if (val) {
  313. //val存在
  314. this.options = this.staffList.filter(item => {
  315. if (
  316. !!~item.staffName.indexOf(val) ||
  317. !!~item.staffName.toUpperCase().indexOf(val.toUpperCase())
  318. ) {
  319. return true
  320. }
  321. })
  322. } else {
  323. //val为空时,还原数组
  324. this.options = this.staffList
  325. }
  326. },
  327. selectstaff(e) {
  328. for (var i = 0; i < this.staffList.length; i++) {
  329. if (this.staffList[i].staffName == e) {
  330. this.dataList.agentKey = this.staffList[i].staffId
  331. }
  332. }
  333. },
  334. selectstaff1(e) {
  335. for (var i = 0; i < this.staffList.length; i++) {
  336. if (this.staffList[i].staffName == e) {
  337. this.dataList1.agentKey = this.staffList[i].staffId
  338. }
  339. }
  340. },
  341. requestadd(list, status) {
  342. this.$refs.dataList.validate(valid => {
  343. if (valid) {
  344. list.compId = sessionStorage.getItem('ws-pf_compId')
  345. list.publisher =
  346. sessionStorage.getItem('ws-pf_roleName') +
  347. sessionStorage.getItem('ws-pf_staffName')
  348. addoreditoutput(list)
  349. .toPromise()
  350. .then(response => {
  351. this.$message.success('添加成功')
  352. this.$router.push({ path: 'salesPlanList' })
  353. })
  354. } else {
  355. EventBus.$emit('error', this.$t('showMessage.asteriskRequired'))
  356. return false
  357. }
  358. })
  359. },
  360. //关闭
  361. close() {
  362. this.$router.push({ path: 'salesPlanList' })
  363. },
  364. selectwarehouseName() {},
  365. tarechange(e) {
  366. if (this.dataList.grossWeight && this.dataList.tare) {
  367. this.dataList.netWeight = Number(
  368. this.dataList.grossWeight - this.dataList.tare
  369. )
  370. }
  371. },
  372. grossWeightchange(e) {
  373. if (this.dataList.grossWeight && this.dataList.tare) {
  374. this.dataList.netWeight = Number(
  375. this.dataList.grossWeight - this.dataList.tare
  376. )
  377. }
  378. },
  379. selectgoodsName(e) {
  380. for (var i = 0; i < this.goodnameList.length; i++) {
  381. if (this.goodnameList[i].constValue == e) {
  382. this.dataList.goodsNameKey = this.goodnameList[i].constKey
  383. }
  384. }
  385. },
  386. selectgoodsName1(e) {
  387. for (var i = 0; i < this.goodnameList.length; i++) {
  388. if (this.goodnameList[i].constValue == e) {
  389. this.dataList1.goodsNameKey = this.goodnameList[i].constKey
  390. }
  391. }
  392. },
  393. selectpackingMethod(e) {
  394. for (var i = 0; i < this.packtypeList.length; i++) {
  395. if (this.packtypeList[i].constValue == e) {
  396. this.dataList.packingMethodKey = this.packtypeList[i].constKey
  397. }
  398. }
  399. },
  400. selectpackingMethod1(e) {
  401. for (var i = 0; i < this.packtypeList.length; i++) {
  402. if (this.packtypeList[i].constValue == e) {
  403. this.dataList1.packingMethodKey = this.packtypeList[i].constKey
  404. }
  405. }
  406. },
  407. selectstorageType(e) {
  408. for (var i = 0; i < this.storageType.length; i++) {
  409. if (this.storageType[i].constValue == e) {
  410. this.dataList.inOutTypeKey = this.storageType[i].constKey
  411. }
  412. }
  413. },
  414. selectstorageType1(e) {
  415. for (var i = 0; i < this.storageType1.length; i++) {
  416. if (this.storageType1[i].constValue == e) {
  417. this.dataList1.inOutTypeKey = this.storageType[i].constKey
  418. }
  419. }
  420. },
  421. handleClose() {
  422. this.accessoryTFs = false
  423. },
  424. tasktypechange() {
  425. this.tasknumber()
  426. },
  427. GetRandomNum(Min, Max) {
  428. var Range = Max - Min
  429. var Rand = Math.random()
  430. return Min + Math.round(Rand * Range)
  431. },
  432. getList(){
  433. saleLook({
  434. id: this.$route.query.id
  435. })
  436. .toPromise()
  437. .then(response => {
  438. this.dataList = response
  439. })
  440. },
  441. // deletecontract(){},
  442. //删除
  443. approve() {},
  444. listQuery() {},
  445. total() {},
  446. clearfiltQuery() {},
  447. selectCrtDuty() {}
  448. }
  449. }
  450. </script>
  451. <style lang="scss" scoped>
  452. /deep/.basicInformation {
  453. .el-info-table {
  454. border: none;
  455. position: relative;
  456. }
  457. .el-form-item {
  458. width: 33.3333%;
  459. border: none;
  460. margin: 0;
  461. .el-form-item__label {
  462. text-align: left;
  463. font-size: 14px;
  464. font-family: PingFangSC-Regular, PingFang SC;
  465. font-weight: 400;
  466. color: #8890b1;
  467. }
  468. .el-form-item__content {
  469. padding-left: 0px;
  470. padding-right: 10px;
  471. // background: #fff;
  472. white-space: nowrap;
  473. height: 40px;
  474. display: flex;
  475. -webkit-box-align: center;
  476. align-items: center;
  477. text-align: left;
  478. overflow: hidden;
  479. }
  480. }
  481. }
  482. /deep/.el-radio {
  483. color: #606266;
  484. font-weight: 500;
  485. line-height: 1;
  486. cursor: pointer;
  487. white-space: nowrap;
  488. outline: 0;
  489. margin-right: 30px;
  490. margin-top: 15px;
  491. }
  492. /deep/.el-radio__inner {
  493. border: 1px solid #dcdfe6;
  494. border-radius: 100%;
  495. width: 14px;
  496. height: 14px;
  497. background-color: #fff;
  498. cursor: pointer;
  499. -webkit-box-sizing: border-box;
  500. box-sizing: border-box;
  501. margin-left: 100px;
  502. }
  503. /deep/.el-radio__input {
  504. white-space: nowrap;
  505. cursor: pointer;
  506. outline: 0;
  507. line-height: 1;
  508. vertical-align: middle;
  509. margin-top: -1px;
  510. }
  511. .title {
  512. position: relative;
  513. padding-left: 10px;
  514. }
  515. .title::before {
  516. content: '';
  517. display: inline-block;
  518. width: 5px;
  519. height: 30px;
  520. background: #5473e8;
  521. position: absolute;
  522. left: 0;
  523. }
  524. .el-form {
  525. padding: 0 15%;
  526. display: flex;
  527. flex-wrap: wrap;
  528. margin-left: -50px;
  529. margin-top: 15px;
  530. width: 110%;
  531. }
  532. .el-button--primary {
  533. background-color: #5878e8;
  534. border-color: #5878e8;
  535. }
  536. .el-col {
  537. background: #f6f7fc;
  538. }
  539. .bg-right {
  540. text-align: right;
  541. padding: 16px 20px;
  542. }
  543. .center {
  544. position: relative;
  545. top: 50px;
  546. width: 40%;
  547. height: 2000px;
  548. margin: 0 auto;
  549. margin-right: 180px;
  550. }
  551. /deep/.el-form-item__label {
  552. width: 160px;
  553. }
  554. .inspector {
  555. width: 50%;
  556. }
  557. /deep/.el-form-item--small .el-form-item__label,
  558. .el-form-item--small .el-form-item__content {
  559. text-align: left;
  560. }
  561. /deep/.el-input--small {
  562. font-size: 13px;
  563. position: relative;
  564. display: inline-block;
  565. }
  566. .center1 .small-title {
  567. margin-left: 323px;
  568. }
  569. .center1 {
  570. width: 90%;
  571. margin: 0 auto;
  572. margin-left: 10px;
  573. margin-top: 25px;
  574. }
  575. /deep/.el-input--small .el-input__inner {
  576. height: 32px;
  577. line-height: 32px;
  578. }
  579. /deep/.el-select {
  580. display: inline-block;
  581. position: relative;
  582. width: 100%;
  583. }
  584. .annu {
  585. height: 81px;
  586. background: #ffffff;
  587. border-radius: 4px;
  588. }
  589. .basicInformation .el-form-item {
  590. width: 50.3333%;
  591. border: none;
  592. margin: 0;
  593. }
  594. .el-form {
  595. font-size: 14px;
  596. font-family: PingFangSC-Regular, PingFang SC;
  597. font-weight: 400;
  598. color: #8890b1;
  599. line-height: 16px;
  600. margin-left: 130px;
  601. }
  602. .a {
  603. margin-left: -32px;
  604. }
  605. .el-radio-group {
  606. margin-left: 80px;
  607. }
  608. .ding {
  609. height: 23px;
  610. background: #e8ecf6;
  611. box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.1);
  612. }
  613. .nav2 {
  614. height: 25px;
  615. background: #e8ecf6;
  616. margin-top: 15px;
  617. }
  618. .ziti {
  619. width: 72px;
  620. height: 20px;
  621. font-size: 14px;
  622. font-family: PingFangSC-Regular, PingFang SC;
  623. font-weight: 400;
  624. color: #8890b1;
  625. line-height: 20px;
  626. margin-left: 314px;
  627. /* margin-top: 112px; */
  628. }
  629. /deep/.ziti1 {
  630. height: 40px;
  631. font-size: 16px;
  632. font-family: PingFangSC-Medium, PingFang SC;
  633. font-weight: 500;
  634. color: #262626;
  635. line-height: 20px;
  636. margin-left: 381px;
  637. margin-top: -21px;
  638. width: 100px;
  639. }
  640. .winseaview-view {
  641. padding: 0 0 20px;
  642. }
  643. .container {
  644. overflow: scroll;
  645. height: 93vh;
  646. }
  647. /deep/.basicInformation .el-form-item .el-form-item__content {
  648. padding-left: 0px;
  649. padding-right: 10px;
  650. white-space: nowrap;
  651. height: 40px;
  652. display: -webkit-box;
  653. display: -ms-flexbox;
  654. display: flex;
  655. -webkit-box-align: center;
  656. -ms-flex-align: center;
  657. align-items: center;
  658. text-align: left;
  659. overflow: hidden;
  660. font-size: 12px;
  661. font-family: PingFangSC-Regular, PingFang SC;
  662. font-weight: 400;
  663. color: #232323;
  664. line-height: 14px;
  665. }
  666. .nav {
  667. width: 400px;
  668. height: 20px;
  669. }
  670. .forlist{
  671. background-color: #F5F7FA;
  672. border-radius: 10px;
  673. width: 100%;
  674. padding-left: 15px;
  675. height: 35px;
  676. line-height: 35px;
  677. color: #C0C4CC;
  678. font-size: 14px;
  679. }
  680. </style>