salesContract.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. <!--销售合同-->
  2. <!--2019年5月30日 20:25:16 by jlx-->
  3. <template>
  4. <div>
  5. <BaseHeaderLayout :leftSpan="10">
  6. <template slot="left">
  7. <ws-button
  8. type="primary"
  9. :disable="checkBtn"
  10. @click="handleAdd()"
  11. v-hasPermission="
  12. `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
  13. "
  14. >添加</ws-button
  15. >
  16. <ws-button
  17. :disable="checkBtn"
  18. @click="enquiry(3)"
  19. v-hasPermission="
  20. `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
  21. "
  22. >导出</ws-button
  23. >
  24. </template>
  25. <template slot="right">
  26. <ws-select
  27. v-model="deptBudgetList.crtDutyId"
  28. placeholder=""
  29. class="typeselect"
  30. @change="selectCrtDuty"
  31. >
  32. <ws-option
  33. v-for="item in taskTypeList"
  34. :key="item.value"
  35. :label="item.value"
  36. :value="item.value"
  37. />
  38. </ws-select>
  39. <ws-date-picker
  40. :picker-options="pickerBeginDateBefore"
  41. v-model="deptBudgetList.birthday"
  42. type="date"
  43. default-value="1980-01-01"
  44. placeholder="起始日期"
  45. format="yyyy-MM-dd"
  46. value-format="yyyy-MM-dd"
  47. />
  48. <span>至</span>
  49. <ws-date-picker
  50. :picker-options="pickerBeginDateBefore"
  51. v-model="deptBudgetList.birthday"
  52. type="date"
  53. default-value="1980-01-01"
  54. placeholder="截止日期"
  55. format="yyyy-MM-dd"
  56. value-format="yyyy-MM-dd"
  57. />
  58. <ws-input
  59. v-model="deptBudgetList.interviewOpinion"
  60. placeholder="可按照合同编号、买方名称、卖方名称进行查找"
  61. clearable
  62. maxlength="500"
  63. type="input"
  64. class="findValue"
  65. ></ws-input>
  66. <!-- v-hasPermission="'procurement.sparepart.directShip'" -->
  67. <ws-button
  68. type="primary"
  69. :disable="checkBtn"
  70. @click="enquiry(3)"
  71. v-hasPermission="
  72. `${$permission('PERMISSIONS.PURSPAPPLINFO_CREATEINSTORE')}`
  73. "
  74. >查找</ws-button
  75. >
  76. </template>
  77. </BaseHeaderLayout>
  78. <el-table :data="tableData" style="width: 100%; margin-top: 10px">
  79. <el-table-column type="index" />
  80. <el-table-column prop="date" label="合同编号" width="80">
  81. </el-table-column>
  82. <el-table-column prop="name" label="货名" width="80"> </el-table-column>
  83. <el-table-column prop="address" label="品级"> </el-table-column>
  84. <el-table-column prop="address" label="重量(吨)"> </el-table-column>
  85. <el-table-column prop="address" label="合同单价(元)"> </el-table-column>
  86. <el-table-column prop="address" label="包装方式"> </el-table-column>
  87. <el-table-column prop="address" label="买方"> </el-table-column>
  88. <el-table-column prop="address" label="卖方"> </el-table-column>
  89. <el-table-column prop="address" label="已完成(吨)"> </el-table-column>
  90. <el-table-column prop="address" label="状态"> </el-table-column>
  91. <el-table-column prop="address" label="签订日期"> </el-table-column>
  92. <el-table-column prop="address" label="未回款(元)"> </el-table-column>
  93. <el-table-column prop="address" label="附件"> </el-table-column>
  94. <el-table-column prop="address" label="操作" width="300">
  95. <template slot-scope="scope">
  96. <el-button
  97. type="success"
  98. size="small"
  99. @click="handleExamine(scope.row)"
  100. >查看</el-button
  101. >
  102. <el-button type="primary" size="small" @click="handleEdit(scope.row)"
  103. >编辑</el-button
  104. >
  105. <el-button type="danger" size="small" @click="handleDelete(scope.row)"
  106. >删除</el-button
  107. >
  108. </template>
  109. </el-table-column>
  110. </el-table>
  111. <!-- 弹出页面-审核通过 -->
  112. <BaseContentModalScrap
  113. v-model="dialogApproveFormVisible"
  114. :title="$t('common.opinion')"
  115. :isRules="false"
  116. @confirm="approve"
  117. />
  118. </div>
  119. </template>
  120. <script>
  121. import {
  122. getList,
  123. export1,
  124. editstatus,
  125. billoperatehis,
  126. } from '@/model/contarct/index'
  127. import { dayjs } from 'base-core-lib'
  128. export default {
  129. name: 'viewSpareMoney',
  130. watch: {
  131. vesselId(val) {
  132. this.getVesselData()
  133. },
  134. isShow(val) {
  135. this.showType = val
  136. },
  137. },
  138. data() {
  139. return {
  140. //弹出框
  141. dialogViewSpareMoney: false,
  142. dialogApproveFormVisible: false,
  143. // 船舶类型
  144. monetaryKey: null,
  145. // 表格显示数据
  146. tableDate: [],
  147. // 是否显示
  148. showType: true,
  149. // 年
  150. year: '',
  151. // 提交类型
  152. submitType: true,
  153. contractForm: {},
  154. categoryIndex: 0,
  155. rulesVendor: {},
  156. tableData: [{ date: 1111, name: 'qqqq', address: 'errrtt' }],
  157. taskTypeList: [
  158. { value: '未完成(默认)' },
  159. { value: '已完成' },
  160. { value: '待回款' },
  161. { value: '全部合同' },
  162. ],
  163. deptBudgetList: {
  164. compId: sessionStorage.getItem('ws-pf_compId'),
  165. seafarerName: '',
  166. crtDutyId: '',
  167. crtDutyName: '',
  168. seafarerSexKey: '',
  169. mobilePhone: '',
  170. birthday: '',
  171. dutyId: '',
  172. dutyName: '',
  173. intendedShipId: '',
  174. intendedShipName: '',
  175. interviewPersons: '',
  176. interviewDates: '',
  177. interviewType: '',
  178. interviewResult: '1',
  179. interviewOpinion: '',
  180. aliasName: '',
  181. currentPage: 1,
  182. pageSize: 10,
  183. searchType: 1,
  184. searchTypeText: '未完成',
  185. searchKeyWord: '',
  186. contractType: 1,
  187. startDate: null,
  188. endDate: null,
  189. },
  190. }
  191. },
  192. created() {
  193. this.getList()
  194. this.showType = this.isShow
  195. },
  196. methods: {
  197. // 关闭 dialog时 处理文件url 初始化upload组件
  198. handleClose() {
  199. this.dialogViewSpareMoney = false
  200. },
  201. handleExamine(row) {
  202. this.$router.push({ path: 'salesContractExamine' })
  203. },
  204. handleAdd() {
  205. this.$router.push({ path: 'salesContractAdd' })
  206. },
  207. filtlistQuery() {},
  208. searchDialog() {},
  209. vesselIdSelected() {},
  210. seelctShips() {},
  211. checkBtn() {},
  212. handleEdit(row) {
  213. this.$router.push({ path: 'salesContractEdit' })
  214. },
  215. approve() {},
  216. listQuery() {},
  217. total() {},
  218. clearfiltQuery() {},
  219. selectCrtDuty() {},
  220. pickerBeginDateBefore: {
  221. disabledDate: (time) => {
  222. return time.getTime() > Date.now()
  223. },
  224. },
  225. getList() {
  226. console.log(
  227. this.contractType,
  228. this.currentPage,
  229. this.pageSize,
  230. this.searchType,
  231. this.searchKeyWord,
  232. this.startDate,
  233. this.endDate,
  234. this.contrPage
  235. )
  236. getList({
  237. compId: sessionStorage.getItem('ws-pf_compId'),
  238. contractType: this.contractType,
  239. currentPage: this.currentPage,
  240. pageSize: this.pageSize,
  241. searchType: this.searchType,
  242. searchKeyWord: this.searchKeyWord,
  243. startDate: this.startDate,
  244. endDate: this.endDate,
  245. contrPage: this.contrPage,
  246. })
  247. .toPromise()
  248. .then((response) => {
  249. this.contractList = response
  250. })
  251. },
  252. },
  253. }
  254. </script>
  255. <style lang="scss" scoped>
  256. .typeselect {
  257. width: 500px;
  258. }
  259. .padding-xs {
  260. padding: 15px;
  261. text-align: right;
  262. }
  263. .clearfix:after {
  264. content: '';
  265. display: block;
  266. clear: both;
  267. }
  268. .taskType {
  269. width: 100%;
  270. background-color: #fff;
  271. margin-top: 2px;
  272. margin-bottom: 10px;
  273. list-style: none;
  274. // padding-bottom: 20px;
  275. li {
  276. float: left;
  277. border: 1px solid #6ea0f3;
  278. border-radius: 5px;
  279. max-width: 190px;
  280. padding: 0 5px;
  281. text-align: center;
  282. margin: 10px 20px;
  283. cursor: pointer;
  284. font-size: 14px;
  285. p {
  286. margin: 8px 0px;
  287. span {
  288. color: #e74c3c;
  289. }
  290. }
  291. }
  292. li:hover {
  293. background-color: #e4eeff;
  294. color: #1d6ced;
  295. }
  296. }
  297. .el-date-editor--date {
  298. margin: 0 10px;
  299. }
  300. .findValue {
  301. margin: 0 10px;
  302. }
  303. .button-container {
  304. display: flex;
  305. flex-wrap: nowrap;
  306. justify-content: space-between;
  307. align-items: center;
  308. background-color: #fff;
  309. width: 100%;
  310. height: 50px;
  311. padding: 0 10px;
  312. & > div {
  313. margin-left: 10px;
  314. display: flex;
  315. flex-wrap: nowrap;
  316. flex-direction: row;
  317. & > span {
  318. line-height: 50px;
  319. }
  320. }
  321. /deep/.auditFlow-box {
  322. position: unset;
  323. margin-left: 10px;
  324. &/deep/.auditFlow-icon {
  325. width: auto;
  326. padding-right: 30px;
  327. }
  328. &/deep/.auditFlow-main {
  329. position: absolute;
  330. }
  331. }
  332. }
  333. .box-app {
  334. display: inline-block;
  335. float: left;
  336. margin-left: 30px;
  337. line-height: 50px;
  338. }
  339. /deep/.el-dialog {
  340. .el-form-item {
  341. margin-bottom: 0 !important;
  342. .el-input--medium {
  343. textarea {
  344. min-height: 100px !important;
  345. }
  346. }
  347. }
  348. }
  349. .collapse-bottom {
  350. margin-bottom: 20px;
  351. }
  352. .input-main .textarea .el-textarea__inner {
  353. width: 100%;
  354. z-index: 1;
  355. }
  356. /*.crt-main .textarea /deep/ .el-form-item__label {*/
  357. /* height: 82px;*/
  358. /*}*/
  359. // 控制select为只读的时候显示样式
  360. .hide-sel {
  361. .el-input__inner {
  362. border: 0px;
  363. }
  364. .el-icon-arrow-up {
  365. display: none;
  366. }
  367. .el-textarea__inner {
  368. background-color: #fff !important;
  369. border: 0;
  370. }
  371. .el-date-editor {
  372. i {
  373. display: none;
  374. }
  375. }
  376. .is-disabled {
  377. .el-input__inner:hover {
  378. background-color: #fff !important;
  379. border: 0;
  380. }
  381. color: #606266;
  382. .el-input__inner {
  383. background-color: #fff !important;
  384. border: 0;
  385. color: #606266;
  386. }
  387. .el-textarea__inner {
  388. background-color: #fff !important;
  389. border: 0;
  390. color: #606266;
  391. }
  392. }
  393. }
  394. // 控制select为只读的时候显示样式
  395. /deep/.ws-class-table-col {
  396. height: auto;
  397. padding: 0px 2px;
  398. /deep/.el-input__inner {
  399. padding: 0px 2px;
  400. }
  401. }
  402. /deep/.is-disabled {
  403. .el-input__prefix,
  404. .el-input__suffix {
  405. display: none;
  406. }
  407. .el-input__inner {
  408. background-color: #fff;
  409. border-color: #fff !important;
  410. color: #000 !important;
  411. font-size: 14px;
  412. cursor: text;
  413. padding: 0 !important;
  414. }
  415. }
  416. </style>