HlgUserSubcontractorContract.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <template>
  2. <a-modal
  3. :title="title"
  4. :width="modelStyle.width"
  5. :visible="visible"
  6. :bodyStyle="bodyStyle"
  7. :confirmLoading="confirmLoading"
  8. @ok="handleOk"
  9. @cancel="handleCancel"
  10. :maskClosable="false"
  11. :footer="null"
  12. cancelText="关闭">
  13. <a-spin :spinning="confirmLoading">
  14. <a-card :bordered="false">
  15. <!-- 查询区域 -->
  16. <div class="table-page-search-wrapper">
  17. <a-form layout="inline" @keyup.enter.native="searchQuery">
  18. <a-row :gutter="24">
  19. </a-row>
  20. </a-form>
  21. </div>
  22. <!-- 查询区域-END -->
  23. <div style="margin-bottom: 10px">{{msg}}</div>
  24. <!-- 操作按钮区域 -->
  25. <div class="table-operator">
  26. <a-button @click="uploadContract()" type="primary" icon="plus" v-has="'userSubcontractor:addContract'">上传合同</a-button>
  27. </div>
  28. <!-- table区域-begin -->
  29. <div>
  30. <a-table
  31. ref="table"
  32. size="middle"
  33. bordered
  34. rowKey="id"
  35. :columns="columns"
  36. :dataSource="dataSource"
  37. :pagination="ipagination"
  38. :loading="loading"
  39. @change="handleTableChange">
  40. <span slot="action" slot-scope="text, record">
  41. <template v-if="record.contractStatus==2">
  42. --
  43. </template>
  44. <template v-else>
  45. <a @click="uploadContract1(record)" v-has="'userSubcontractor:editContract'">编辑</a>
  46. </template>
  47. <a-divider type="vertical" v-has="'userSubcontractor:viewContract'"/>
  48. <a @click="uploadContract2(record)" v-has="'userSubcontractor:viewContract'">查看合同</a>
  49. </span>
  50. <span slot="action1" slot-scope="text, record">
  51. <template v-if="record.isAutoRenew == 1">
  52. --
  53. </template>
  54. <template v-else>
  55. <template v-if="record.contractStatus == 1">
  56. <span style="color: #FF7312">{{text.length > 10 ? text.substring(0,10) : text}}(即将到期)</span>
  57. </template>
  58. <template v-else-if="record.contractStatus == 2">
  59. <span style="color: #F01B1B">{{text.length > 10 ? text.substring(0,10) : text}}(已到期)</span>
  60. </template>
  61. <template v-else>
  62. {{text.length > 10 ? text.substring(0,10) : text}}
  63. </template>
  64. </template>
  65. </span>
  66. </a-table>
  67. </div>
  68. </a-card>
  69. </a-spin>
  70. <hlg-user-upload-contract-modal ref="uploadContractForm" @ok="modalFormOk"></hlg-user-upload-contract-modal>
  71. <div class="drawer-bootom-button" >
  72. <a-button class="ant-btn" @click="handleCancel">关闭</a-button>
  73. </div>
  74. </a-modal>
  75. </template>
  76. <script>
  77. import '@/assets/less/TableExpand.less'
  78. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  79. import { filterObj } from '@/utils/util'
  80. import { httpAction ,getAction,putAction,deleteAction} from '@/api/manage'
  81. import HlgUserUploadContractModal from './HlgUserUploadContractModal'
  82. export default {
  83. name: "HlgUserSubcontractorContract",
  84. mixins:[JeecgListMixin,],
  85. components: {
  86. HlgUserUploadContractModal
  87. },
  88. data () {
  89. return {
  90. msg:'',
  91. userId:0,
  92. subcontractorId: 0,
  93. form: this.$form.createForm(this),
  94. bodyStyle: {
  95. padding: '0',
  96. height: (window.innerHeight * 0.66) + 'px',
  97. 'overflow-y': 'auto'
  98. },
  99. modelStyle: {
  100. width: '76%',
  101. style: { top: '20px' },
  102. fullScreen: false
  103. },
  104. visible: false,
  105. model: {},
  106. labelCol: {
  107. xs: { span: 24 },
  108. sm: { span: 5 },
  109. },
  110. wrapperCol: {
  111. xs: { span: 24 },
  112. sm: { span: 16 },
  113. },
  114. confirmLoading: false,
  115. title: '用户合同',
  116. description: '用户合同',
  117. // 表头
  118. columns: [
  119. {
  120. title:'合同开始时间',
  121. align:"left",
  122. dataIndex: 'startDate',
  123. customRender:function (text) {
  124. return !text?"":(text.length>10?text.substr(0,10):text)
  125. }
  126. },
  127. {
  128. title:'合同结束时间',
  129. align:"left",
  130. dataIndex: 'endDate',
  131. scopedSlots: { customRender: 'action1' }
  132. },
  133. {
  134. title: '操作',
  135. dataIndex: 'action',
  136. align:"left",
  137. // fixed:"right",
  138. // width:147,
  139. scopedSlots: { customRender: 'action' }
  140. }
  141. ],
  142. url: {
  143. list: "/hlguser/hlgUserSubcontract/userSubcontractorContractList",
  144. },
  145. dictOptions:{},
  146. }
  147. },
  148. computed: {
  149. importExcelUrl: function(){
  150. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
  151. },
  152. },
  153. methods: {
  154. getQueryParams() {
  155. var param = Object.assign({}, this.queryParam, this.isorter)
  156. param.field = this.getQueryField()
  157. param.pageNo = this.ipagination.current;
  158. param.pageSize = this.ipagination.pageSize;
  159. param.subcontractorId=this.subcontractorId
  160. param.userId=this.userId
  161. return filterObj(param)
  162. },
  163. edit (record) {
  164. this.model={}
  165. this.model = Object.assign({}, record);
  166. this.dataSource=[]
  167. this.ipagination.total=0
  168. this.subcontractorId=record.subcontractorId
  169. this.userId=record.userId
  170. if(record.isPayment){
  171. this.msg ="已走款:"+(record.minPaymentTime.length>10?record.minPaymentTime.substr(0,10):record.minPaymentTime)+'~'+(record.maxPaymentTime.length>10?record.maxPaymentTime.substr(0,10):record.maxPaymentTime)
  172. }else{
  173. this.msg ="未走款"
  174. }
  175. this.visible = true
  176. this.loadData(1)
  177. },
  178. loadData(arg) {
  179. if (!this.url.list) {
  180. this.$message.error('请设置url.list属性!')
  181. return
  182. }
  183. //加载数据 若传入参数1则加载第一页的内容
  184. if (arg === 1) {
  185. this.ipagination.current = 1;
  186. }
  187. var params = this.getQueryParams()//查询条件
  188. this.loading = true
  189. getAction(this.url.list, params).then((res) => {
  190. if (res.success) {
  191. this.dataSource = res.result.records
  192. this.ipagination.total = res.result.total;
  193. }
  194. if (res.code === 510) {
  195. this.$message.warning(res.message)
  196. }
  197. this.loading = false
  198. })
  199. },
  200. close () {
  201. this.$emit('ok');
  202. this.visible = false;
  203. },
  204. handleOk () {
  205. this.$emit('ok');
  206. this.close()
  207. },
  208. handleCancel () {
  209. this.$emit('ok');
  210. this.close()
  211. },
  212. modalFormOk(){
  213. this.loadData(1)
  214. },
  215. uploadContract(){
  216. var record1={}
  217. record1.userId=this.userId
  218. record1.subcontractorId=this.subcontractorId
  219. this.$refs.uploadContractForm.edit(record1);
  220. this.$refs.uploadContractForm.title = this.title;
  221. this.$refs.uploadContractForm.disableSubmit = false;
  222. },
  223. uploadContract1(record){
  224. var record1={}
  225. record1.contractId=record.id
  226. record1.userId=this.userId
  227. record1.subcontractorId=this.subcontractorId
  228. record1.workContract=record.workContract
  229. record1.startDate=record.startDate
  230. record1.endDate=record.endDate
  231. record1.isAutoRenew=record.isAutoRenew
  232. this.$refs.uploadContractForm.edit(record1);
  233. this.$refs.uploadContractForm.title = this.title;
  234. this.$refs.uploadContractForm.disableSubmit = false;
  235. },
  236. uploadContract2(record){
  237. var record1={}
  238. record1.contractId=record.id
  239. record1.userId=this.userId
  240. record1.subcontractorId=this.subcontractorId
  241. record1.workContract=record.workContract
  242. record1.startDate=record.startDate
  243. record1.endDate=record.endDate
  244. record1.isAutoRenew=record.isAutoRenew
  245. console.log(record1)
  246. this.$refs.uploadContractForm.edit(record1);
  247. this.$refs.uploadContractForm.title = this.title;
  248. this.$refs.uploadContractForm.disableSubmit = true;
  249. }
  250. }
  251. }
  252. </script>
  253. <style scoped>
  254. @import '~@assets/less/common.less';
  255. </style>