| @@ -0,0 +1,46 @@ | |||||
| import request from '@/utils/request' | |||||
| // 查询零工事项列表 | |||||
| export function listRegistration(query) { | |||||
| return request({ | |||||
| url: '/subcontract/registration/list', | |||||
| method: 'get', | |||||
| params: query | |||||
| }) | |||||
| } | |||||
| // 查询零工事项详细 | |||||
| export function getRegistration(id) { | |||||
| return request({ | |||||
| url: '/subcontract/registration/get/' + id, | |||||
| method: 'get', | |||||
| params: arguments[1] || {} | |||||
| }) | |||||
| } | |||||
| // 新增零工事项 | |||||
| export function addRegistration(data) { | |||||
| return request({ | |||||
| url: '/subcontract/registration/add', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| // 修改零工事项 | |||||
| export function updateRegistration(data) { | |||||
| return request({ | |||||
| url: '/subcontract/registration/edit', | |||||
| method: 'post', | |||||
| data: data | |||||
| }) | |||||
| } | |||||
| // 删除零工事项 | |||||
| export function delRegistration(id) { | |||||
| return request({ | |||||
| url: '/subcontract/registration/remove/' + id, | |||||
| method: 'get' | |||||
| }) | |||||
| } | |||||
| @@ -0,0 +1,29 @@ | |||||
| import request from '@/utils/request' | |||||
| // 查询用章申请详细 | |||||
| export function getSeal(id) { | |||||
| return request({ | |||||
| url: '/yinnong/seal/get/' + id, | |||||
| method: 'get', | |||||
| params: arguments[1] || {} | |||||
| }) | |||||
| } | |||||
| // 查询资产处置详细 | |||||
| export function getAsset(id) { | |||||
| return request({ | |||||
| url: '/yinnong/asset/get/' + id, | |||||
| method: 'get', | |||||
| params: arguments[1] || {} | |||||
| }) | |||||
| } | |||||
| // 查询合同签订详细 | |||||
| export function getContraction(id) { | |||||
| return request({ | |||||
| url: '/yinnong/contraction/get/' + id, | |||||
| method: 'get', | |||||
| params: arguments[1] || {} | |||||
| }) | |||||
| } | |||||
| @@ -123,6 +123,8 @@ export default { | |||||
| { | { | ||||
| this.setupFinished(true); | this.setupFinished(true); | ||||
| } | } | ||||
| }).catch((err) => { | |||||
| this.setupError(err); | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.setupLoading(false); | this.setupLoading(false); | ||||
| this.setupRefreshing(false); | this.setupRefreshing(false); | ||||
| @@ -157,6 +159,13 @@ export default { | |||||
| if(ok) | if(ok) | ||||
| this.$emit('finished', this.stateTotal); | this.$emit('finished', this.stateTotal); | ||||
| }, | }, | ||||
| setupError(err) { | |||||
| this.log(`error -> ${err}`); | |||||
| this.stateFinished = true; | |||||
| if(this.stateFinished != this.finished) | |||||
| this.$emit('update:finished', this.stateFinished); | |||||
| this.$emit('error', err); | |||||
| }, | |||||
| setupRefreshing(ok) { | setupRefreshing(ok) { | ||||
| this.log(`refreshing -> ${ok}`); | this.log(`refreshing -> ${ok}`); | ||||
| this.stateRefreshing = ok; | this.stateRefreshing = ok; | ||||
| @@ -15,6 +15,7 @@ | |||||
| :required="required" | :required="required" | ||||
| :label-width="labelWidth || 'auto'" | :label-width="labelWidth || 'auto'" | ||||
| :input-align="inputAlign || 'left'" | :input-align="inputAlign || 'left'" | ||||
| :size="size || ''" | |||||
| > | > | ||||
| <!-- <template #button> | <!-- <template #button> | ||||
| <van-icon name="notes-o" size="20"/> | <van-icon name="notes-o" size="20"/> | ||||
| @@ -64,7 +65,8 @@ export default { | |||||
| 'formatter', // value的格式化 String|Function|undefined 字符串为格式字符串, 函数则必须有返回 undefined则不转换 | 'formatter', // value的格式化 String|Function|undefined 字符串为格式字符串, 函数则必须有返回 undefined则不转换 | ||||
| 'clearable', // 点击取消时清空绑定值 | 'clearable', // 点击取消时清空绑定值 | ||||
| 'yearRangeLength', // type === 'year' 时生成的年份数量范围 [YEAR - yearRangeLength, YEAR + yearRangeLength] | 'yearRangeLength', // type === 'year' 时生成的年份数量范围 [YEAR - yearRangeLength, YEAR + yearRangeLength] | ||||
| 'minDate', 'maxDate' | |||||
| 'minDate', 'maxDate', | |||||
| 'size', | |||||
| ], | ], | ||||
| watch: { | watch: { | ||||
| value: function (newVal, oldVal) { | value: function (newVal, oldVal) { | ||||
| @@ -2357,6 +2357,33 @@ export const constantRoutes = [ | |||||
| }, | }, | ||||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalApproval13'], resolve) | component: (resolve) => require(['@/views/yinnong/bankAgriculture/paymentApproval/approvalApproval13'], resolve) | ||||
| }, | }, | ||||
| { | |||||
| path: '/yinnong/sealApproval', | |||||
| name: 'sealApproval', | |||||
| meta: { | |||||
| title: '用章事项申请审批', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/sealApproval'], resolve) | |||||
| }, | |||||
| { | |||||
| path: '/yinnong/assetApproval', | |||||
| name: 'assetApproval', | |||||
| meta: { | |||||
| title: '资产处置申请审批', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/assetApproval'], resolve) | |||||
| }, | |||||
| { | |||||
| path: '/yinnong/contractionApproval', | |||||
| name: 'contractionApproval', | |||||
| meta: { | |||||
| title: '合同签订申请审批', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/yinnong/bankAgriculture/approval/contractionApproval'], resolve) | |||||
| }, | |||||
| { | { | ||||
| path: '/yinnong/approvalModify', | path: '/yinnong/approvalModify', | ||||
| @@ -3741,6 +3768,34 @@ export const constantRoutes = [ | |||||
| }, | }, | ||||
| component: (resolve) => require(['@/views/sunVillage_info/list_register_detail'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/list_register_detail'], resolve) | ||||
| }, | }, | ||||
| { ////阳光村务(新)-- 零工事项 | |||||
| path: '/sunVillage_info/registrationIndex', | |||||
| name: 'registrationIndex', | |||||
| meta: { | |||||
| title: '零工事项', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/sunVillage_info/registration/registrationList'], resolve) | |||||
| }, | |||||
| { ////阳光村务(新)-- 零工事项详情 | |||||
| path: '/sunVillage_info/registrationDetail', | |||||
| name: 'registrationDetail', | |||||
| meta: { | |||||
| title: '零工事项详情', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/sunVillage_info/registration/registrationDetail'], resolve) | |||||
| }, | |||||
| { ////阳光村务(新)-- 新增/编辑零工事项 | |||||
| path: '/sunVillage_info/registrationEdit', | |||||
| name: 'registrationEdit', | |||||
| meta: { | |||||
| title: '编辑零工事项', | |||||
| hidden: true, | |||||
| }, | |||||
| component: (resolve) => require(['@/views/sunVillage_info/registration/registrationEdit'], resolve) | |||||
| }, | |||||
| { ////阳光村务(新)-- 发包方审核 | { ////阳光村务(新)-- 发包方审核 | ||||
| path: '/sunVillage_info/list_employer_process', | path: '/sunVillage_info/list_employer_process', | ||||
| name: 'sunVillageInfoListEmployerProcess', | name: 'sunVillageInfoListEmployerProcess', | ||||
| @@ -131,6 +131,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -137,6 +137,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -131,6 +131,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -142,6 +142,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -146,6 +146,8 @@ export default { | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -133,6 +133,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -90,6 +90,8 @@ import { getList } from "@/api/onlineHome/homestead/information"; | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -180,6 +180,8 @@ export default { | |||||
| }); | }); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -113,6 +113,8 @@ export default { | |||||
| this.list.push(...response.rows); | this.list.push(...response.rows); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -129,6 +129,8 @@ export default { | |||||
| this.list.push(...response.rows); | this.list.push(...response.rows); | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -160,6 +160,8 @@ export default { | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -160,6 +160,8 @@ export default { | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -115,6 +115,8 @@ import {registrationList} from "@/api/sunVillage_info/subcontract"; | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -0,0 +1,179 @@ | |||||
| <template> | |||||
| <div class="home_wrapper"> | |||||
| <div class="header_main"> | |||||
| 零工事项 | |||||
| <div class="return_btn" @click="back"></div> | |||||
| </div> | |||||
| <van-form ref="formData" :readonly="true"> | |||||
| <div class="list_main"> | |||||
| <van-field name="jobTime" :value="form.jobTime" label="出工日期" input-align="right" :border="false" /> | |||||
| <van-field name="workReason" :value="form.workReason" label="出工事由" input-align="right" :border="false" /> | |||||
| <van-field | |||||
| name="openPic1" | |||||
| label="事前公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic1" :value="form.openPic1" multiple :deletable="false" :show-upload="false"/> | |||||
| <van-field | |||||
| name="openPic2" | |||||
| label="事中公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic2" :value="form.openPic2" multiple :deletable="false" :show-upload="false"/> | |||||
| <van-field | |||||
| name="openPic3" | |||||
| label="事后公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic3" :value="form.openPic3" multiple :deletable="false" :show-upload="false"/> | |||||
| <van-field name="remake" :value="form.remark" label="备注" input-align="left" :border="false"/> | |||||
| </div> | |||||
| </van-form> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import CommonUpload from "@/components/form/CommonUpload.vue"; | |||||
| import {getRegistration} from "@/api/sunVillage_info/registration"; | |||||
| export default { | |||||
| name: "registrationDetail", | |||||
| components: {CommonUpload}, | |||||
| data() { | |||||
| return { | |||||
| form: { | |||||
| id: null, | |||||
| bookId: null, | |||||
| deptId: null, | |||||
| deptName: null, | |||||
| jobNy: null, | |||||
| jobTime: null, | |||||
| workReason: null, | |||||
| remark: null, | |||||
| openPic1: null, | |||||
| openPic2: null, | |||||
| openPic3: null, | |||||
| createBy: null, | |||||
| createTime: null, | |||||
| updateBy: null, | |||||
| updateTime: null | |||||
| }, | |||||
| id:'', | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.id = this.$route.query.id; | |||||
| this.getDetail(); | |||||
| }, | |||||
| methods: { | |||||
| getDetail() { | |||||
| if(!this.id) | |||||
| { | |||||
| this.back(); | |||||
| return; | |||||
| } | |||||
| getRegistration(this.id).then((resp) => { | |||||
| this.form = resp.data; | |||||
| }); | |||||
| }, | |||||
| back() { | |||||
| this.$router.back(); | |||||
| }, | |||||
| }, | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| /deep/ .van-button--primary{ | |||||
| background: url("../../../assets/images/sunVillage_info/btn_bg.png") no-repeat; | |||||
| background-size: 100% 100%; | |||||
| border: none; | |||||
| } | |||||
| .home_wrapper{ | |||||
| background: #e9e9e9; | |||||
| min-height: 100vh; | |||||
| width: 100vw; | |||||
| .header_main { | |||||
| height: 116px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| position: fixed; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| font-size: 36px; | |||||
| line-height: 116px; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| position: relative; | |||||
| .return_btn { | |||||
| width: 24px; | |||||
| height: 43.2px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
| background-size: 20px 36px; | |||||
| position: absolute; | |||||
| left: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| .add_btn { | |||||
| width: 56.4px; | |||||
| height: 40.8px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
| background-size: 47px 34px; | |||||
| position: absolute; | |||||
| right: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| } | |||||
| .list_main{ | |||||
| padding:25px; | |||||
| background: #ffffff; | |||||
| width: 94%; | |||||
| margin: 25px auto 0; | |||||
| border-radius: 15PX; | |||||
| box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
| } | |||||
| .titBox{ | |||||
| display: flex; | |||||
| align-items: center; | |||||
| } | |||||
| .tit{ | |||||
| font-size: 36px; | |||||
| font-weight: bold; | |||||
| } | |||||
| /deep/ .van-cell{ | |||||
| padding-left: 0!important; | |||||
| padding-right: 0!important; | |||||
| padding-bottom: 0!important; | |||||
| } | |||||
| /deep/ .van-field__label{ | |||||
| padding-left: 10PX; | |||||
| width: 8.2em; | |||||
| } | |||||
| /deep/ .van-cell--required::before{ | |||||
| left: 0; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,244 @@ | |||||
| <template> | |||||
| <div class="home_wrapper"> | |||||
| <div class="header_main"> | |||||
| {{title}}零工事项 | |||||
| <div class="return_btn" @click="back()"></div> | |||||
| </div> | |||||
| <van-form ref="formData" :show-error-message="false" @submit="submit"> | |||||
| <div class="list_main"> | |||||
| <field-date-picker | |||||
| name="jobTime" | |||||
| class="field_no-label" | |||||
| v-model="form.jobTime" | |||||
| placeholder="请选择出工日期" | |||||
| formatter="yyyy-MM-dd" | |||||
| input-align="right" | |||||
| type="date" | |||||
| label="出工日期" | |||||
| :required="true" | |||||
| :rules="rules.jobTime" | |||||
| size="large" | |||||
| /> | |||||
| <van-field name="workReason" v-model="form.workReason" label="出工事由" input-align="right" required :rules="rules.workReason" placeholder="请输入出工事由" size="large" :maxlength="255"/> | |||||
| <van-field | |||||
| name="openPic1" | |||||
| label="事前公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic1" v-model="form.openPic1" multiple/> | |||||
| <van-field | |||||
| name="openPic2" | |||||
| label="事中公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic2" v-model="form.openPic2" multiple/> | |||||
| <van-field | |||||
| name="openPic3" | |||||
| label="事后公开" | |||||
| input-align="right" | |||||
| :border="false" | |||||
| > | |||||
| </van-field> | |||||
| <CommonUpload name="openPic3" v-model="form.openPic3" multiple/> | |||||
| <van-field name="remark" v-model="form.remark" label="备注" input-align="left" size="large" :maxlength="255" placeholder="请输入备注"/> | |||||
| </div> | |||||
| <div style="margin: 16px auto;width: 50%;"> | |||||
| <van-button round block type="primary" native-type="submit"> | |||||
| 保存 | |||||
| </van-button> | |||||
| </div> | |||||
| </van-form> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import CommonUpload from "@/components/form/CommonUpload.vue"; | |||||
| import {addRegistration, getRegistration, updateRegistration} from "@/api/sunVillage_info/registration"; | |||||
| import FieldDatePicker from "@/components/form/FieldDatePicker.vue"; | |||||
| import {Toast} from "vant"; | |||||
| export default { | |||||
| name: "registrationDetail", | |||||
| components: {FieldDatePicker, CommonUpload}, | |||||
| data() { | |||||
| return { | |||||
| form: { | |||||
| id: null, | |||||
| bookId: null, | |||||
| deptId: null, | |||||
| deptName: null, | |||||
| jobNy: null, | |||||
| jobTime: null, | |||||
| workReason: null, | |||||
| remark: null, | |||||
| openPic1: null, | |||||
| openPic2: null, | |||||
| openPic3: null, | |||||
| createBy: null, | |||||
| createTime: null, | |||||
| updateBy: null, | |||||
| updateTime: null | |||||
| }, | |||||
| rules: { | |||||
| jobTime: [{message: '请选择出工日期', required: true}], | |||||
| workReason: [{message: '请选择出工日期', required: true}], | |||||
| }, | |||||
| id: null, | |||||
| intent: null, | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.id = this.$route.query.id; | |||||
| this.intent = this.$route.query.intent; | |||||
| if(this.isEdit) | |||||
| this.getDetail(); | |||||
| }, | |||||
| methods: { | |||||
| getDetail() { | |||||
| if(!this.id) | |||||
| { | |||||
| this.back(); | |||||
| return; | |||||
| } | |||||
| getRegistration(this.id).then((resp) => { | |||||
| this.form = resp.data; | |||||
| }); | |||||
| }, | |||||
| back(ti) { | |||||
| if(ti > 0) | |||||
| setTimeout(() => this.$router.back(), ti); | |||||
| else | |||||
| this.$router.back(); | |||||
| }, | |||||
| submit() { | |||||
| const loading = Toast.loading({ | |||||
| message: '保存中...', | |||||
| duration: 0, | |||||
| }); | |||||
| if(this.form.id) | |||||
| { | |||||
| updateRegistration(this.form).then((resp) => { | |||||
| this.$notify({ type: 'success', message: '保存成功' }); | |||||
| this.back(1500); | |||||
| }).finally(() => { | |||||
| loading.clear(); | |||||
| }); | |||||
| } | |||||
| else | |||||
| { | |||||
| addRegistration(this.form).then((resp) => { | |||||
| this.$notify({ type: 'success', message: '新增成功' }); | |||||
| this.back(1500); | |||||
| }).finally(() => { | |||||
| loading.clear(); | |||||
| }); | |||||
| } | |||||
| }, | |||||
| }, | |||||
| computed: { | |||||
| isAdd() { | |||||
| return this.intent === 'add'; | |||||
| }, | |||||
| isEdit() { | |||||
| return this.intent === 'edit'; | |||||
| }, | |||||
| title() { | |||||
| return this.intent === 'edit' ? '编辑' : '新增'; | |||||
| }, | |||||
| }, | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| /deep/ .van-button--primary{ | |||||
| background: url("../../../assets/images/sunVillage_info/btn_bg.png") no-repeat; | |||||
| background-size: 100% 100%; | |||||
| border: none; | |||||
| } | |||||
| .home_wrapper{ | |||||
| background: #e9e9e9; | |||||
| min-height: 100vh; | |||||
| width: 100vw; | |||||
| .header_main { | |||||
| height: 116px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| position: fixed; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| font-size: 36px; | |||||
| line-height: 116px; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| position: relative; | |||||
| .return_btn { | |||||
| width: 24px; | |||||
| height: 43.2px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
| background-size: 20px 36px; | |||||
| position: absolute; | |||||
| left: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| .add_btn { | |||||
| width: 56.4px; | |||||
| height: 40.8px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
| background-size: 47px 34px; | |||||
| position: absolute; | |||||
| right: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| } | |||||
| .list_main{ | |||||
| padding:25px; | |||||
| background: #ffffff; | |||||
| width: 94%; | |||||
| margin: 25px auto 0; | |||||
| border-radius: 15PX; | |||||
| box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
| } | |||||
| .titBox{ | |||||
| display: flex; | |||||
| align-items: center; | |||||
| } | |||||
| .tit{ | |||||
| font-size: 36px; | |||||
| font-weight: bold; | |||||
| } | |||||
| /deep/ .van-cell{ | |||||
| padding-left: 0!important; | |||||
| padding-right: 0!important; | |||||
| padding-bottom: 0!important; | |||||
| } | |||||
| /deep/ .van-field__label{ | |||||
| padding-left: 10PX; | |||||
| width: 8.2em; | |||||
| } | |||||
| /deep/ .van-cell--required::before{ | |||||
| left: 0; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,374 @@ | |||||
| <template> | |||||
| <div class="home_wrapper"> | |||||
| <div class="header_main" | |||||
| :style="`background-image:url(${require('@/assets/images/sunVillage_info/list_head.png')})`" | |||||
| > | |||||
| 零工事项 | |||||
| <div class="return_btn" @click="back"></div> | |||||
| <div class="add_btn" @click="add"></div> | |||||
| </div> | |||||
| <!-- <p class="top_head_title">{{deptName}}{{yearMonth[0]}}年{{yearMonth[1]}}月份</p>--> | |||||
| <div class="list_main"> | |||||
| <paged-list | |||||
| ref="pagedList" | |||||
| :page-num.sync="queryParams.pageNum" | |||||
| :page-size.sync="queryParams.pageSize" | |||||
| :total.sync="total" | |||||
| :getListFunc="getListReq" | |||||
| @reload="dataList = []" | |||||
| get-when-created | |||||
| :finished.sync="finished" | |||||
| :loading.sync="loading"> | |||||
| <div class="item" v-for="(item,index) in dataList" :key="index" @click="viewItem(item.id)" > | |||||
| <div class="info"> | |||||
| <div class="title"> | |||||
| <p class="news_title">{{item.workReason}}</p> | |||||
| </div> | |||||
| <div class="time"> | |||||
| <div class="icon_time"></div> | |||||
| {{item.jobTime}} | |||||
| </div> | |||||
| </div> | |||||
| <div class="operation"> | |||||
| <div class="opera_btn view" @click.stop="viewItem(item.id)"> | |||||
| <i class="icon "></i> | |||||
| </div> | |||||
| <div class="opera_btn edit" @click.stop="edit(item.id)"> | |||||
| <i class="icon "></i> | |||||
| </div> | |||||
| <div class="opera_btn delete" @click.stop="remove(item.id)"> | |||||
| <i class="icon"></i> | |||||
| </div> | |||||
| </div> | |||||
| </div> | |||||
| </paged-list> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import {addRegistration, delRegistration, listRegistration} from "@/api/sunVillage_info/registration"; | |||||
| import Cookies from "js-cookie"; | |||||
| import PagedList from "@/components/common/PagedList.vue"; | |||||
| import {Dialog, Toast} from "vant"; | |||||
| export default { | |||||
| name: "registrationList", | |||||
| components: {PagedList}, | |||||
| data() { | |||||
| return { | |||||
| refreshing: false, | |||||
| dataList:[], | |||||
| loading: false, | |||||
| finished: false, | |||||
| total: 0, | |||||
| queryParams:{ | |||||
| pageNum:1, | |||||
| pageSize:10, | |||||
| orderByColumn:'jobTime', | |||||
| isAsc:'desc', | |||||
| year:'', | |||||
| }, | |||||
| yearMonth:[], | |||||
| deptName:'' | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| }, | |||||
| methods: { | |||||
| getListReq(pageInfo) { | |||||
| return new Promise((resolve, reject) => { | |||||
| listRegistration(this.queryParams).then((response) => { | |||||
| response.rows.forEach((x) => this.dataList.push(x)); | |||||
| resolve(response); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| viewItem(id){ | |||||
| this.$router.push({ | |||||
| name: 'registrationDetail', | |||||
| query: { | |||||
| id: id, | |||||
| intent: 'view', | |||||
| }, | |||||
| }).catch(() => {}); | |||||
| }, | |||||
| add() { | |||||
| this.$router.push({ | |||||
| name: 'registrationEdit', | |||||
| query: { | |||||
| intent: 'add', | |||||
| }, | |||||
| }).catch(() => {}); | |||||
| }, | |||||
| edit(id) { | |||||
| this.$router.push({ | |||||
| name: 'registrationEdit', | |||||
| query: { | |||||
| id: id, | |||||
| intent: 'edit', | |||||
| }, | |||||
| }).catch(() => {}); | |||||
| }, | |||||
| remove(id) { | |||||
| Dialog.confirm({ | |||||
| title: '警告', | |||||
| message: '确认删除该项?', | |||||
| }) | |||||
| .then(() => { | |||||
| const loading = Toast.loading({ | |||||
| message: '删除中...', | |||||
| duration: 0, | |||||
| }); | |||||
| delRegistration(id).then((resp) => { | |||||
| this.$notify({ type: 'success', message: '删除成功' }); | |||||
| this.$refs.pagedList.getList(); | |||||
| }).finally(() => { | |||||
| loading.clear(); | |||||
| }); | |||||
| }) | |||||
| .catch(() => {}); | |||||
| }, | |||||
| back() { | |||||
| this.$router.back(); | |||||
| }, | |||||
| }, | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .home_wrapper{ | |||||
| background: #e9e9e9; | |||||
| min-height: 100vh; | |||||
| width: 100vw; | |||||
| .header_main{ | |||||
| height: 116px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_head.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| position: fixed; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| font-size: 36px; | |||||
| line-height: 116px; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| position: relative; | |||||
| .return_btn{ | |||||
| width: 24px; | |||||
| height: 43.2px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_5.png') center center no-repeat; | |||||
| background-size: 20px 36px; | |||||
| position: absolute; | |||||
| left: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| .add_btn{ | |||||
| width: 56.4px; | |||||
| height: 40.8px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_9.png') center center no-repeat; | |||||
| background-size: 47px 34px; | |||||
| position: absolute; | |||||
| right: 38px; | |||||
| top: 36px; | |||||
| } | |||||
| } | |||||
| .record_main{ | |||||
| padding:30px 22px; | |||||
| .record_det{ | |||||
| height: 38px; | |||||
| line-height: 38px; | |||||
| display: flex; | |||||
| justify-content:space-between; | |||||
| .year_l{ | |||||
| font-size: 30px; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| color: #858585; | |||||
| .unit{ | |||||
| padding-left: 5px; | |||||
| } | |||||
| .icon{ | |||||
| width: 23px; | |||||
| height: 12px; | |||||
| display: block; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_1.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| margin-bottom: 4px; | |||||
| margin-right: 8px; | |||||
| &.zk { | |||||
| transform: rotate(0deg) | |||||
| } | |||||
| &.ss{ | |||||
| transform: rotate(180deg) | |||||
| } | |||||
| } | |||||
| } | |||||
| .total_r{ | |||||
| font-size: 26px; | |||||
| letter-spacing: 2px; | |||||
| } | |||||
| } | |||||
| .record_list{ | |||||
| display: flex; | |||||
| flex-flow: wrap; | |||||
| margin-top: 12PX; | |||||
| .flex_block{ | |||||
| font-size: 30px; | |||||
| color: #878787; | |||||
| padding-right: 30px; | |||||
| &.current{ | |||||
| color: #4199fe; | |||||
| font-weight: bold; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .list_main{ | |||||
| padding:15px 22px; | |||||
| .item{ | |||||
| height: 140px; | |||||
| border-radius: 30px; | |||||
| background: #fff; | |||||
| box-shadow: 4px 6px 5px rgba(63, 68, 75, 0.1); | |||||
| padding:25px 32px; | |||||
| display: flex; | |||||
| margin-bottom: 20px; | |||||
| justify-content: space-between; | |||||
| .info{ | |||||
| .title{ | |||||
| display: flex; | |||||
| font-size: 32px; | |||||
| align-items: center; | |||||
| height: 58px; | |||||
| .icon_box{ | |||||
| width: 34px; | |||||
| display: block; | |||||
| height: 30px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_2.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| margin-right: 10px; | |||||
| flex-shrink: 0; | |||||
| } | |||||
| .news_title{ | |||||
| display: -webkit-box; | |||||
| -webkit-box-orient: vertical; | |||||
| -webkit-line-clamp: 1; | |||||
| word-break: break-all; | |||||
| overflow: hidden; | |||||
| } | |||||
| .tips_mark{ | |||||
| width: 34px; | |||||
| height: 34px; | |||||
| background: #fa0c0c; | |||||
| border-radius: 8px; | |||||
| font-size: 24px; | |||||
| color: #fff; | |||||
| text-align: center; | |||||
| line-height: 34px; | |||||
| margin-left: 10px; | |||||
| flex-shrink: 0; | |||||
| } | |||||
| } | |||||
| .time{ | |||||
| font-size: 24px; | |||||
| color: #858585; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| height: 30px; | |||||
| margin-top: 6px; | |||||
| .icon_time{ | |||||
| width: 25px; | |||||
| height: 25px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_4.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| margin-right: 10px; | |||||
| } | |||||
| } | |||||
| } | |||||
| .operation{ | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: right; | |||||
| text-align: right; | |||||
| .opera_btn{ | |||||
| width: 52px; | |||||
| height: 52px; | |||||
| border-radius: 50%; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content:center; | |||||
| &.delete{ | |||||
| background:#df0707; | |||||
| margin-left: 10PX; | |||||
| .icon{ | |||||
| width: 22px; | |||||
| height: 29px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_7.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| &.edit{ | |||||
| background: #79cf13; | |||||
| margin-left: 10PX; | |||||
| .icon { | |||||
| width: 26px; | |||||
| height: 25px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_6.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| &.view{ | |||||
| background: #3494ff; | |||||
| margin-left: 10PX; | |||||
| .icon { | |||||
| width: 29px; | |||||
| height: 21px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_3.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| &.list{ | |||||
| background: #79cf13; | |||||
| margin-left: 10PX; | |||||
| .icon { | |||||
| width: 29px; | |||||
| height: 21px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_10.png') no-repeat; | |||||
| background-size: 100% 100%; | |||||
| display: block; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| .bottom_tips{ | |||||
| font-size: 24px; | |||||
| color: #a7a6a6; | |||||
| text-align: center; | |||||
| margin-top: 32px; | |||||
| background: url('../../../assets/images/sunVillage_info/list_icon_8.png') center center no-repeat; | |||||
| background-size: 260px 2px; | |||||
| .xs{ | |||||
| padding:0 8px; | |||||
| background: #e9e9e9; | |||||
| } | |||||
| } | |||||
| } | |||||
| .top_head_title{ | |||||
| font-size: 16PX; | |||||
| text-align: center; | |||||
| padding: 15PX 0; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,236 @@ | |||||
| <template> | |||||
| <div class="app-container"> | |||||
| <van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||||
| <template #title> | |||||
| <p style="font-weight: bold;">资产处置申请审批</p> | |||||
| </template> | |||||
| <template #right> | |||||
| <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||||
| </template> | |||||
| </van-nav-bar> | |||||
| <van-form readonly> | |||||
| <div class="main_box"> | |||||
| <van-field :value="form.assetName" label="资产名称" input-align="right" /> | |||||
| <van-field :value="form.applyAt" label="申请日期" input-align="right" /> | |||||
| <van-field :value="form.assetType" label="资产类别" input-align="right" /> | |||||
| <van-field :value="form.assetStatus" label="处置类型" input-align="right" /> | |||||
| <van-field :value="approvalTemplateName" label="审批流程" input-align="right"/> | |||||
| <van-field :value="form.doRemark" label="处置原因" input-align="right" /> | |||||
| <van-field label="附件" input-align="right" readonly> | |||||
| <template #button> | |||||
| <van-button type="info" size="small" @click="openAttachment(form.id)" >查看附件</van-button> | |||||
| </template> | |||||
| </van-field> | |||||
| <van-popup v-model="showAttachment" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||||
| <div style="padding: 0 13% 0 5%;"> | |||||
| <van-divider>附件</van-divider> | |||||
| <van-uploader v-model="fileList" multiple :readonly="true" :show-upload="false" /> | |||||
| </div> | |||||
| </van-popup> | |||||
| </div> | |||||
| </van-form> | |||||
| <div class="main_box examine_box"> | |||||
| <van-row type="flex" justify="space-between" align="center"> | |||||
| <van-col span="5">审批<br/>意见</van-col> | |||||
| <van-col span="19"> | |||||
| <van-radio-group v-model="pass" direction="horizontal" :disabled="!isAudit"> | |||||
| <van-radio name="true">同意</van-radio> | |||||
| <van-radio name="false">驳回</van-radio> | |||||
| </van-radio-group> | |||||
| <van-field :readonly="!isAudit" v-model="comment" type="textarea" placeholder="请输入审批意见" rows="2" /> | |||||
| </van-col> | |||||
| </van-row> | |||||
| </div> | |||||
| <div style="margin: 16px 2%;" v-if="isAudit"> | |||||
| <van-row> | |||||
| <van-col span="24" align="center"> | |||||
| <van-button type="info" native-type="submit" @click="submitApproval" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||||
| </van-col> | |||||
| </van-row> | |||||
| <div class="clear"></div> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import {listTemplate, approval} from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||||
| import {attachmentList} from "@/api/sunVillage_info/fixedAssets"; | |||||
| import request from "@/utils/request"; | |||||
| import {A_auditHistoryDetail} from "@/api/audit/aauditpipeline"; | |||||
| import {getAsset} from "@/api/yinnong/yinnongApproval"; | |||||
| export default { | |||||
| name: "assetApproval", | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| templateList:[], | |||||
| // 审核意见默认值 | |||||
| pass: "true", | |||||
| comment: "同意", | |||||
| showAttachment: false, | |||||
| fileList: [], | |||||
| tableName: 't_sys_asset', | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.reset(); | |||||
| listTemplate({ type: '8' }).then(response => { | |||||
| this.templateList = response.rows; | |||||
| }); | |||||
| this.getDetail(); | |||||
| }, | |||||
| watch: { | |||||
| pass: function (val) { | |||||
| if(this.isAudit) | |||||
| this.comment = val === "true" ? "同意" : "驳回"; | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| goBack(){ | |||||
| this.$router.back(-1); | |||||
| }, | |||||
| // 表单重置 | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| deptId: null, | |||||
| bookId: null, | |||||
| bookName: null, | |||||
| applyAt: null, | |||||
| assetName: null, | |||||
| assetType: null, | |||||
| assetStatus: null, | |||||
| doRemark: null, | |||||
| auditStatus: null, | |||||
| auditbatchNo: null, | |||||
| approvalTemplateId: null, | |||||
| createBy: null, | |||||
| createTime: null, | |||||
| updateBy: null, | |||||
| updateTime: null | |||||
| }; | |||||
| }, | |||||
| getDetail(){ | |||||
| getAsset(this.$route.query.id, {translate_dict: 1}).then(response => { | |||||
| this.form = response.data; | |||||
| if(!this.isAudit) | |||||
| { | |||||
| A_auditHistoryDetail(this.$route.query.taskId).then((resp) => { | |||||
| this.pass = resp.data.auditStatus === '3' ? "true" : 'false'; | |||||
| this.comment = resp.data.auditRemark; | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| submitApproval() { | |||||
| approval({ | |||||
| taskId: this.$route.query.taskId, | |||||
| auditbatchNo: this.$route.query.auditbatchNo, | |||||
| pass: this.pass, | |||||
| remark: this.comment, | |||||
| deptId: this.form.deptId | |||||
| }).then((response) => { | |||||
| if (response.code === 200) { | |||||
| this.$toast.success("保存成功"); | |||||
| setTimeout(function () { | |||||
| history.go(-1) | |||||
| }, 500); | |||||
| } else { | |||||
| this.$toast.success("保存失败"); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| goFlow(){ | |||||
| this.$router.push({name: 'approvalProcess13', query: { id: this.$route.query.auditbatchNo, templateId: this.form.approvalTemplateId }}); | |||||
| }, | |||||
| openAttachment(id) { | |||||
| this.showAttachment = true; | |||||
| this.fileList = []; | |||||
| let params = { | |||||
| tableId: id, | |||||
| tableName: this.tableName, | |||||
| bizPath: "yinnong", | |||||
| fileType: '', | |||||
| }; | |||||
| attachmentList(params).then(res => { | |||||
| res.rows.map(r => { | |||||
| let baseUrl = location.protocol + "//" + location.host + request.defaults.baseURL; | |||||
| this.fileList.push({"url": baseUrl + r.fileUrl, "file": new File([], r.fileName, {}), "id": r.id}); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| }, | |||||
| computed: { | |||||
| isAudit() { | |||||
| return this.$route.query.type != 'done'; | |||||
| }, | |||||
| approvalTemplateName() { | |||||
| const item = this.templateList.find((x) => x.id == this.form.approvalTemplateId); | |||||
| return item ? item.name : this.form.approvalTemplateId; | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .app-container { | |||||
| padding: 2% 0; | |||||
| } | |||||
| .main_box { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| border-radius: 6px; | |||||
| box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||||
| overflow: hidden; | |||||
| background-color: #FFF; | |||||
| } | |||||
| .submitButton { | |||||
| width: 80%; | |||||
| margin: 0 auto; | |||||
| background-color: #1D6FE9; | |||||
| } | |||||
| .examine_box { | |||||
| background-color: #1D6FE9 !important; | |||||
| padding: 0.18rem !important; | |||||
| padding-left: 0 !important; | |||||
| border-radius: 0.15rem !important; | |||||
| margin-top: 0.3rem !important; | |||||
| } | |||||
| .examine_box .van-col:first-child { | |||||
| color: #FFF !important; | |||||
| font-size: 0.45rem !important; | |||||
| text-align: center !important; | |||||
| } | |||||
| .examine_box .van-col:last-child { | |||||
| background-color: #FFF !important; | |||||
| border-radius: 0.15rem !important; | |||||
| overflow: hidden !important; | |||||
| .van-radio-group--horizontal { | |||||
| padding: 0.2rem 0; | |||||
| border-bottom: 1px solid #eee; | |||||
| } | |||||
| } | |||||
| /deep/ .van-radio--horizontal { | |||||
| margin-left: 20px; | |||||
| margin-right: 0; | |||||
| } | |||||
| .submitButton { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,251 @@ | |||||
| <template> | |||||
| <div class="app-container"> | |||||
| <van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||||
| <template #title> | |||||
| <p style="font-weight: bold;">合同签订申请审批</p> | |||||
| </template> | |||||
| <template #right> | |||||
| <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||||
| </template> | |||||
| </van-nav-bar> | |||||
| <van-form readonly> | |||||
| <div class="main_box"> | |||||
| <van-field :value="form.conName" label="合同名称" input-align="right" /> | |||||
| <van-field :value="form.applyAt" label="申请日期" input-align="right" /> | |||||
| <van-field :value="form.contractionType" label="合同类型" input-align="right" /> | |||||
| <van-field :value="form.paymentType" label="结款类型" input-align="right" /> | |||||
| <van-field :value="form.isTender" label="是否招投标" input-align="right" /> | |||||
| <van-field :value="form.totalAmount" label="合同金额(元)" input-align="right" type="number" /> | |||||
| <van-field :value="form.secondParty" label="对方单位" input-align="right" /> | |||||
| <van-field :value="form.secondPartyDirector" label="对方代表" input-align="right" /> | |||||
| <van-field :value="form.secondPartyPhone" label="对方代表电话" input-align="right" /> | |||||
| <van-field :value="form.startTime" label="开始日期" input-align="right" /> | |||||
| <van-field :value="form.endTime" label="结束日期" input-align="right" /> | |||||
| <van-field :value="approvalTemplateName" label="审批流程" input-align="right"/> | |||||
| <van-field :value="form.remark" label="备注" input-align="right" /> | |||||
| <van-field label="附件" input-align="right" readonly> | |||||
| <template #button> | |||||
| <van-button type="info" size="small" @click="openAttachment(form.id)" >查看附件</van-button> | |||||
| </template> | |||||
| </van-field> | |||||
| <van-popup v-model="showAttachment" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||||
| <div style="padding: 0 13% 0 5%;"> | |||||
| <van-divider>附件</van-divider> | |||||
| <van-uploader v-model="fileList" multiple :readonly="true" :show-upload="false" /> | |||||
| </div> | |||||
| </van-popup> | |||||
| </div> | |||||
| </van-form> | |||||
| <div class="main_box examine_box"> | |||||
| <van-row type="flex" justify="space-between" align="center"> | |||||
| <van-col span="5">审批<br/>意见</van-col> | |||||
| <van-col span="19"> | |||||
| <van-radio-group v-model="pass" direction="horizontal" :disabled="!isAudit"> | |||||
| <van-radio name="true">同意</van-radio> | |||||
| <van-radio name="false">驳回</van-radio> | |||||
| </van-radio-group> | |||||
| <van-field :readonly="!isAudit" v-model="comment" type="textarea" placeholder="请输入审批意见" rows="2" /> | |||||
| </van-col> | |||||
| </van-row> | |||||
| </div> | |||||
| <div style="margin: 16px 2%;" v-if="isAudit"> | |||||
| <van-row> | |||||
| <van-col span="24" align="center"> | |||||
| <van-button type="info" native-type="submit" @click="submitApproval" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||||
| </van-col> | |||||
| </van-row> | |||||
| <div class="clear"></div> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import {listTemplate, approval} from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||||
| import {attachmentList} from "@/api/sunVillage_info/fixedAssets"; | |||||
| import request from "@/utils/request"; | |||||
| import {A_auditHistoryDetail} from "@/api/audit/aauditpipeline"; | |||||
| import {getContraction} from "@/api/yinnong/yinnongApproval"; | |||||
| export default { | |||||
| name: "contractionApproval", | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| templateList:[], | |||||
| // 审核意见默认值 | |||||
| pass: "true", | |||||
| comment: "同意", | |||||
| showAttachment: false, | |||||
| fileList: [], | |||||
| tableName: 't_sys_contraction', | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.reset(); | |||||
| listTemplate({ type: '9' }).then(response => { | |||||
| this.templateList = response.rows; | |||||
| }); | |||||
| this.getDetail(); | |||||
| }, | |||||
| watch: { | |||||
| pass: function (val) { | |||||
| if(this.isAudit) | |||||
| this.comment = val === "true" ? "同意" : "驳回"; | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| goBack(){ | |||||
| this.$router.back(-1); | |||||
| }, | |||||
| // 表单重置 | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| deptId: null, | |||||
| bookId: null, | |||||
| bookName: null, | |||||
| conName: null, | |||||
| applyAt: null, | |||||
| contractionType: null, | |||||
| paymentType: null, | |||||
| isTender: null, | |||||
| totalAmount: null, | |||||
| secondParty: null, | |||||
| secondPartyDirector: null, | |||||
| secondPartyPhone: null, | |||||
| startTime: null, | |||||
| endTime: null, | |||||
| remark: null, | |||||
| auditStatus: null, | |||||
| auditbatchNo: null, | |||||
| approvalTemplateId: null, | |||||
| isArchive: null, | |||||
| createBy: null, | |||||
| createTime: null, | |||||
| updateBy: null, | |||||
| updateTime: null | |||||
| }; | |||||
| }, | |||||
| getDetail(){ | |||||
| getContraction(this.$route.query.id, {translate_dict: 1}).then(response => { | |||||
| this.form = response.data; | |||||
| if(!this.isAudit) | |||||
| { | |||||
| A_auditHistoryDetail(this.$route.query.taskId).then((resp) => { | |||||
| this.pass = resp.data.auditStatus === '3' ? "true" : 'false'; | |||||
| this.comment = resp.data.auditRemark; | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| submitApproval() { | |||||
| approval({ | |||||
| taskId: this.$route.query.taskId, | |||||
| auditbatchNo: this.$route.query.auditbatchNo, | |||||
| pass: this.pass, | |||||
| remark: this.comment, | |||||
| deptId: this.form.deptId | |||||
| }).then((response) => { | |||||
| if (response.code === 200) { | |||||
| this.$toast.success("保存成功"); | |||||
| setTimeout(function () { | |||||
| history.go(-1) | |||||
| }, 500); | |||||
| } else { | |||||
| this.$toast.success("保存失败"); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| goFlow(){ | |||||
| this.$router.push({name: 'approvalProcess13', query: { id: this.$route.query.auditbatchNo, templateId: this.form.approvalTemplateId }}); | |||||
| }, | |||||
| openAttachment(id) { | |||||
| this.showAttachment = true; | |||||
| this.fileList = []; | |||||
| let params = { | |||||
| tableId: id, | |||||
| tableName: this.tableName, | |||||
| bizPath: "yinnong", | |||||
| fileType: '', | |||||
| }; | |||||
| attachmentList(params).then(res => { | |||||
| res.rows.map(r => { | |||||
| let baseUrl = location.protocol + "//" + location.host + request.defaults.baseURL; | |||||
| this.fileList.push({"url": baseUrl + r.fileUrl, "file": new File([], r.fileName, {}), "id": r.id}); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| }, | |||||
| computed: { | |||||
| isAudit() { | |||||
| return this.$route.query.type != 'done'; | |||||
| }, | |||||
| approvalTemplateName() { | |||||
| const item = this.templateList.find((x) => x.id == this.form.approvalTemplateId); | |||||
| return item ? item.name : this.form.approvalTemplateId; | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .app-container { | |||||
| padding: 2% 0; | |||||
| } | |||||
| .main_box { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| border-radius: 6px; | |||||
| box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||||
| overflow: hidden; | |||||
| background-color: #FFF; | |||||
| } | |||||
| .submitButton { | |||||
| width: 80%; | |||||
| margin: 0 auto; | |||||
| background-color: #1D6FE9; | |||||
| } | |||||
| .examine_box { | |||||
| background-color: #1D6FE9 !important; | |||||
| padding: 0.18rem !important; | |||||
| padding-left: 0 !important; | |||||
| border-radius: 0.15rem !important; | |||||
| margin-top: 0.3rem !important; | |||||
| } | |||||
| .examine_box .van-col:first-child { | |||||
| color: #FFF !important; | |||||
| font-size: 0.45rem !important; | |||||
| text-align: center !important; | |||||
| } | |||||
| .examine_box .van-col:last-child { | |||||
| background-color: #FFF !important; | |||||
| border-radius: 0.15rem !important; | |||||
| overflow: hidden !important; | |||||
| .van-radio-group--horizontal { | |||||
| padding: 0.2rem 0; | |||||
| border-bottom: 1px solid #eee; | |||||
| } | |||||
| } | |||||
| /deep/ .van-radio--horizontal { | |||||
| margin-left: 20px; | |||||
| margin-right: 0; | |||||
| } | |||||
| .submitButton { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,240 @@ | |||||
| <template> | |||||
| <div class="app-container"> | |||||
| <van-nav-bar left-arrow fixed placeholder @click-left="goBack"> | |||||
| <template #title> | |||||
| <p style="font-weight: bold;">用章事项申请审批</p> | |||||
| </template> | |||||
| <template #right> | |||||
| <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/> | |||||
| </template> | |||||
| </van-nav-bar> | |||||
| <van-form readonly> | |||||
| <div class="main_box"> | |||||
| <van-field :value="form.itemName" label="用印事项" input-align="right" /> | |||||
| <van-field :value="form.sealType" label="印章类型" input-align="right" /> | |||||
| <van-field :value="form.sealTime" label="申请时间" input-align="right" /> | |||||
| <van-field :value="form.useName" label="申请人" input-align="right" /> | |||||
| <van-field :value="form.useIdcard" label="身份证号" input-align="right" /> | |||||
| <van-field :value="form.usePhone" label="联系电话" input-align="right" /> | |||||
| <van-field :value="approvalTemplateName" label="审批流程" input-align="right"/> | |||||
| <van-field :value="form.remark" label="备注" input-align="right" /> | |||||
| <van-field label="附件" input-align="right" readonly> | |||||
| <template #button> | |||||
| <van-button type="info" size="small" @click="openAttachment(form.id)" >查看附件</van-button> | |||||
| </template> | |||||
| </van-field> | |||||
| <van-popup v-model="showAttachment" lock-scroll closeable position="top" :style="{ height: '30%' }" > | |||||
| <div style="padding: 0 13% 0 5%;"> | |||||
| <van-divider>附件</van-divider> | |||||
| <van-uploader v-model="fileList" multiple :readonly="true" :show-upload="false" /> | |||||
| </div> | |||||
| </van-popup> | |||||
| </div> | |||||
| </van-form> | |||||
| <div class="main_box examine_box"> | |||||
| <van-row type="flex" justify="space-between" align="center"> | |||||
| <van-col span="5">审批<br/>意见</van-col> | |||||
| <van-col span="19"> | |||||
| <van-radio-group v-model="pass" direction="horizontal" :disabled="!isAudit"> | |||||
| <van-radio name="true">同意</van-radio> | |||||
| <van-radio name="false">驳回</van-radio> | |||||
| </van-radio-group> | |||||
| <van-field :readonly="!isAudit" v-model="comment" type="textarea" placeholder="请输入审批意见" rows="2" /> | |||||
| </van-col> | |||||
| </van-row> | |||||
| </div> | |||||
| <div style="margin: 16px 2%;" v-if="isAudit"> | |||||
| <van-row> | |||||
| <van-col span="24" align="center"> | |||||
| <van-button type="info" native-type="submit" @click="submitApproval" class="submitButton">保<i style="margin-right: 1em;"></i>存</van-button> | |||||
| </van-col> | |||||
| </van-row> | |||||
| <div class="clear"></div> | |||||
| </div> | |||||
| </div> | |||||
| </template> | |||||
| <script> | |||||
| import {listTemplate, approval} from "@/api/onlineHome/bankAgriculture/paymentApproval"; | |||||
| import {attachmentList} from "@/api/sunVillage_info/fixedAssets"; | |||||
| import request from "@/utils/request"; | |||||
| import {getSeal} from "@/api/yinnong/yinnongApproval"; | |||||
| import {A_auditHistoryDetail} from "@/api/audit/aauditpipeline"; | |||||
| export default { | |||||
| name: "sealApproval", | |||||
| data() { | |||||
| return { | |||||
| form: {}, | |||||
| templateList:[], | |||||
| // 审核意见默认值 | |||||
| pass: "true", | |||||
| comment: "同意", | |||||
| showAttachment: false, | |||||
| fileList: [], | |||||
| tableName: 't_sys_seal', | |||||
| }; | |||||
| }, | |||||
| created() { | |||||
| this.reset(); | |||||
| listTemplate({ type: '7' }).then(response => { | |||||
| this.templateList = response.rows; | |||||
| }); | |||||
| this.getDetail(); | |||||
| }, | |||||
| watch: { | |||||
| pass: function (val) { | |||||
| if(this.isAudit) | |||||
| this.comment = val === "true" ? "同意" : "驳回"; | |||||
| }, | |||||
| }, | |||||
| methods: { | |||||
| goBack(){ | |||||
| this.$router.back(-1); | |||||
| }, | |||||
| // 表单重置 | |||||
| reset() { | |||||
| this.form = { | |||||
| id: null, | |||||
| bookId: null, | |||||
| deptId: null, | |||||
| bookName: null, | |||||
| itemName: null, | |||||
| sealTime: null, | |||||
| sealType: null, | |||||
| useName: null, | |||||
| useIdcard: null, | |||||
| usePhone: null, | |||||
| remark: null, | |||||
| auditStatus: null, | |||||
| auditbatchNo: null, | |||||
| approvalTemplateId: null, | |||||
| createBy: null, | |||||
| createTime: null, | |||||
| updateBy: null, | |||||
| updateTime: null | |||||
| }; | |||||
| }, | |||||
| getDetail(){ | |||||
| getSeal(this.$route.query.id, {translate_dict: 1}).then(response => { | |||||
| this.form = response.data; | |||||
| if(!this.isAudit) | |||||
| { | |||||
| A_auditHistoryDetail(this.$route.query.taskId).then((resp) => { | |||||
| this.pass = resp.data.auditStatus === '3' ? "true" : 'false'; | |||||
| this.comment = resp.data.auditRemark; | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| submitApproval() { | |||||
| approval({ | |||||
| taskId: this.$route.query.taskId, | |||||
| auditbatchNo: this.$route.query.auditbatchNo, | |||||
| pass: this.pass, | |||||
| remark: this.comment, | |||||
| deptId: this.form.deptId | |||||
| }).then((response) => { | |||||
| if (response.code === 200) { | |||||
| this.$toast.success("保存成功"); | |||||
| setTimeout(function () { | |||||
| history.go(-1) | |||||
| }, 500); | |||||
| } else { | |||||
| this.$toast.success("保存失败"); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| goFlow(){ | |||||
| this.$router.push({name: 'approvalProcess13', query: { id: this.$route.query.auditbatchNo, templateId: this.form.approvalTemplateId }}); | |||||
| }, | |||||
| openAttachment(id) { | |||||
| this.showAttachment = true; | |||||
| this.fileList = []; | |||||
| let params = { | |||||
| tableId: id, | |||||
| tableName: this.tableName, | |||||
| bizPath: "yinnong", | |||||
| fileType: '', | |||||
| }; | |||||
| attachmentList(params).then(res => { | |||||
| res.rows.map(r => { | |||||
| let baseUrl = location.protocol + "//" + location.host + request.defaults.baseURL; | |||||
| this.fileList.push({"url": baseUrl + r.fileUrl, "file": new File([], r.fileName, {}), "id": r.id}); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| }, | |||||
| computed: { | |||||
| isAudit() { | |||||
| return this.$route.query.type != 'done'; | |||||
| }, | |||||
| approvalTemplateName() { | |||||
| const item = this.templateList.find((x) => x.id == this.form.approvalTemplateId); | |||||
| return item ? item.name : this.form.approvalTemplateId; | |||||
| }, | |||||
| } | |||||
| } | |||||
| </script> | |||||
| <style scoped lang="scss"> | |||||
| .app-container { | |||||
| padding: 2% 0; | |||||
| } | |||||
| .main_box { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| border-radius: 6px; | |||||
| box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16); | |||||
| overflow: hidden; | |||||
| background-color: #FFF; | |||||
| } | |||||
| .submitButton { | |||||
| width: 80%; | |||||
| margin: 0 auto; | |||||
| background-color: #1D6FE9; | |||||
| } | |||||
| .examine_box { | |||||
| background-color: #1D6FE9 !important; | |||||
| padding: 0.18rem !important; | |||||
| padding-left: 0 !important; | |||||
| border-radius: 0.15rem !important; | |||||
| margin-top: 0.3rem !important; | |||||
| } | |||||
| .examine_box .van-col:first-child { | |||||
| color: #FFF !important; | |||||
| font-size: 0.45rem !important; | |||||
| text-align: center !important; | |||||
| } | |||||
| .examine_box .van-col:last-child { | |||||
| background-color: #FFF !important; | |||||
| border-radius: 0.15rem !important; | |||||
| overflow: hidden !important; | |||||
| .van-radio-group--horizontal { | |||||
| padding: 0.2rem 0; | |||||
| border-bottom: 1px solid #eee; | |||||
| } | |||||
| } | |||||
| /deep/ .van-radio--horizontal { | |||||
| margin-left: 20px; | |||||
| margin-right: 0; | |||||
| } | |||||
| .submitButton { | |||||
| width: 96%; | |||||
| margin: 0 auto; | |||||
| } | |||||
| </style> | |||||
| @@ -271,13 +271,11 @@ | |||||
| getFileList(){ | getFileList(){ | ||||
| let oData= { | let oData= { | ||||
| tableId: this.$route.query.id, | tableId: this.$route.query.id, | ||||
| tableName: "t_yinnong_majorevent", | |||||
| tableName: 't_yinnong_majorevent', | |||||
| bizPath: "yinnong", | bizPath: "yinnong", | ||||
| fileType: "", | fileType: "", | ||||
| } | } | ||||
| attachmentList(oData).then(res => { | attachmentList(oData).then(res => { | ||||
| console.log(res) | |||||
| console.log(location.protocol+"//"+location.host+request.defaults.baseURL) | |||||
| res.rows.map(r => { | res.rows.map(r => { | ||||
| let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL | ||||
| // this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})}) | // this.fileList.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{})}) | ||||
| @@ -66,7 +66,6 @@ | |||||
| import { getInfo } from "../../../api/login/index"; | import { getInfo } from "../../../api/login/index"; | ||||
| import {A_myTodoList} from "../../../api/audit/aauditpipeline"; | import {A_myTodoList} from "../../../api/audit/aauditpipeline"; | ||||
| import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
| import {registrationList} from "@/api/sunVillage_info/subcontract"; | |||||
| import PagedList from "@/components/common/PagedList.vue"; | import PagedList from "@/components/common/PagedList.vue"; | ||||
| export default { | export default { | ||||
| @@ -243,6 +242,15 @@ | |||||
| query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "todo" } | query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "todo" } | ||||
| }); | }); | ||||
| break; | break; | ||||
| case 't_sys_seal': | |||||
| this.$router.push({name:'sealApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"todo"}}) | |||||
| break; | |||||
| case 't_sys_asset': | |||||
| this.$router.push({name:'assetApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"todo"}}) | |||||
| break; | |||||
| case 't_sys_contraction': | |||||
| this.$router.push({name:'contractionApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"todo"}}) | |||||
| break; | |||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| @@ -224,6 +224,15 @@ | |||||
| query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "done" } | query: { id: item.data.id, taskId: item.id, auditbatchNo: item.auditbatchNo, type: "done" } | ||||
| }); | }); | ||||
| break; | break; | ||||
| case 't_sys_seal': | |||||
| this.$router.push({name:'sealApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"done"}}) | |||||
| break; | |||||
| case 't_sys_asset': | |||||
| this.$router.push({name:'assetApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"done"}}) | |||||
| break; | |||||
| case 't_sys_contraction': | |||||
| this.$router.push({name:'contractionApproval',query: {id:item.data.id,taskId:item.id, auditbatchNo: item.auditbatchNo, type:"done"}}) | |||||
| break; | |||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| @@ -143,6 +143,8 @@ | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||
| @@ -158,6 +158,8 @@ export default { | |||||
| } | } | ||||
| this.total += response.rows.length; | this.total += response.rows.length; | ||||
| this.finished = this.total >= response.total; | this.finished = this.total >= response.total; | ||||
| }).catch(() => { | |||||
| this.finished = true; | |||||
| }).finally(() => { | }).finally(() => { | ||||
| this.loading = false; | this.loading = false; | ||||
| this.refreshing = false; | this.refreshing = false; | ||||