@@ -0,0 +1,160 @@ | |||||
<!-- 通用上传组件 zhao --> | |||||
<template> | |||||
<van-uploader | |||||
v-model="fileList" | |||||
:multiple="multiple" | |||||
:after-read="afterRead" | |||||
:show-upload="showUpload" | |||||
:deletable="deletable" | |||||
@delete="deleteFile" | |||||
:accept="accept || null" | |||||
/> | |||||
</template> | |||||
<script> | |||||
import {commonUpload} from "@/api/sunVillage_info/fixedAssets"; | |||||
export default { | |||||
name: "commonUpload", | |||||
props: { | |||||
name: String, | |||||
value: { // 绑定值 字符串 ,分隔 可监听 | |||||
type: String, | |||||
default: null, | |||||
}, | |||||
accept: { // 上传类型限制: 默认图片, * = 任意类型 | |||||
type: String, | |||||
}, | |||||
multiple: { // 多文件上传 | |||||
type: Boolean, | |||||
default: false, | |||||
}, | |||||
deletable: { // 允许删除 | |||||
type: Boolean, | |||||
default: true, | |||||
}, | |||||
showUpload: { // 显示上传按钮 | |||||
type: Boolean, | |||||
default: true, | |||||
}, | |||||
formData: { // 额外请求参数 | |||||
type: Object, | |||||
default: function() { | |||||
return {}; | |||||
}, | |||||
}, | |||||
file: { // 上传文件字段名 | |||||
type: String, | |||||
default: 'file', | |||||
}, | |||||
host: { | |||||
type: String, // 文件地址前缀 | |||||
default: '/api', | |||||
}, | |||||
}, | |||||
watch: { | |||||
value: function (newVal, oldVal) { | |||||
if(newVal != this.internalValue) | |||||
this.setInternalValue(newVal); | |||||
}, | |||||
}, | |||||
created() { | |||||
this.parseValue(this.value); | |||||
}, | |||||
data() { | |||||
return { | |||||
internalValue: this.value, | |||||
fileList: [], | |||||
pathList: [], | |||||
}; | |||||
}, | |||||
methods: { | |||||
setInternalValue(newVal) { | |||||
this.parseValue(newVal); | |||||
this.internalValue = newVal; | |||||
}, | |||||
parseValue(data) { | |||||
if(data) | |||||
{ | |||||
this.pathList = data.split(','); | |||||
} | |||||
else | |||||
{ | |||||
this.pathList = []; | |||||
} | |||||
this.fileList = this.pathList.map((x) => { | |||||
return { | |||||
url: this.host + x, | |||||
}; | |||||
}); | |||||
}, | |||||
makeFormData() { | |||||
let fd = new FormData(); | |||||
if(this.formData) | |||||
{ | |||||
for(let k of Object.keys(this.formData)) | |||||
{ | |||||
fd.set(k, this.formData[k]); | |||||
} | |||||
} | |||||
return fd; | |||||
}, | |||||
upload(file) { | |||||
let params1 = this.makeFormData(); | |||||
params1.append(this.file, file.file); | |||||
return commonUpload(params1).then((resp) => { | |||||
this.pathList.push(resp.fileName); | |||||
this.updateInternalValue(); | |||||
this.$emit('upload', resp.fileName); | |||||
}); | |||||
}, | |||||
afterRead(file) { | |||||
this.$toast.loading({ | |||||
message: "上传中...", | |||||
forbidClick: true, | |||||
duration: 0, | |||||
}); | |||||
// 此时可以自行将文件上传至服务器 | |||||
if (file instanceof Array) {//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false | |||||
if(file.length > 0) | |||||
{ | |||||
let index = 0; | |||||
const f = () => { | |||||
if(index >= file.length) | |||||
return; | |||||
let up = file[index]; | |||||
//console.log(up); | |||||
console.log(`上传文件: ${index} -> ${up.file.name}`); | |||||
this.upload(up).then(() => { | |||||
index++; | |||||
if(index < file.length) | |||||
f(); | |||||
}); | |||||
}; | |||||
f(); | |||||
} | |||||
} else { | |||||
this.upload(file); | |||||
} | |||||
}, | |||||
deleteFile(detail){ | |||||
this.pathList.splice(detail.index,1); | |||||
this.updateInternalValue(); | |||||
this.$emit('remove', detail.index); | |||||
}, | |||||
updateInternalValue() { | |||||
let files = this.pathList.join(','); | |||||
console.log(files); | |||||
this.internalValue = files; | |||||
if(this.internalValue != this.value) | |||||
this.$emit('input', this.internalValue); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
</style> |
@@ -41,6 +41,8 @@ | |||||
:type="type || 'date'" | :type="type || 'date'" | ||||
:readonly="readonly" | :readonly="readonly" | ||||
:title="label || ''" | :title="label || ''" | ||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
@confirm="onConfirm" | @confirm="onConfirm" | ||||
@cancel="onCancel" | @cancel="onCancel" | ||||
@change="onChanged" | @change="onChanged" | ||||
@@ -62,6 +64,7 @@ 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' | |||||
], | ], | ||||
watch: { | watch: { | ||||
value: function (newVal, oldVal) { | value: function (newVal, oldVal) { | ||||
@@ -3597,6 +3597,24 @@ export const constantRoutes = [ | |||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_add'], resolve) | component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_add'], resolve) | ||||
}, | }, | ||||
{ ////阳光村务(新)-- 零工登记详情 | |||||
path: '/sunVillage_info/list_tourists_registration_detail', | |||||
name: 'sunVillageInfoListTouristsRegistrationDetail', | |||||
meta: { | |||||
title: '查看零工登记', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_detail'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 零工登记修改 | |||||
path: '/sunVillage_info/list_tourists_registration_edit', | |||||
name: 'sunVillageInfoListTouristsRegistrationEdit', | |||||
meta: { | |||||
title: '修改零工登记', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/sunVillage_info/list_tourists_registration_edit'], resolve) | |||||
}, | |||||
{ ////阳光村务(新)-- 合同信息 | { ////阳光村务(新)-- 合同信息 | ||||
path: '/sunVillage_info/list_register', | path: '/sunVillage_info/list_register', | ||||
name: 'sunVillageInfoListRegister', | name: 'sunVillageInfoListRegister', | ||||
@@ -53,6 +53,14 @@ | |||||
<i class="icon "></i> | <i class="icon "></i> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="operation" v-if="!showBtn"> | |||||
<div class="opera_btn list" @click="goRanking(item.id,item.openNy)"> | |||||
<i class="icon "></i> | |||||
</div> | |||||
<div class="opera_btn view" @click="goDetail(item.id)"> | |||||
<i class="icon "></i> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
</van-list> | </van-list> | ||||
</div> | </div> | ||||
@@ -93,7 +101,7 @@ | |||||
projectIndex:'', | projectIndex:'', | ||||
showBtn:true, | showBtn:true, | ||||
nowYear:new Date().getFullYear(), | nowYear:new Date().getFullYear(), | ||||
yearList:[] | |||||
yearList:[], | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -46,27 +46,12 @@ | |||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | <img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | ||||
<p style="margin-left: 5px;">事前公开</p> | |||||
<p style="margin-left: 5px;">公开图片</p> | |||||
</template> | </template> | ||||
</van-field> | </van-field> | ||||
<!-- @delete="deleteFile1"--> | <!-- @delete="deleteFile1"--> | ||||
<van-uploader v-model="fileList" multiple :after-read="afterRead" @delete="deleteFile1" style="margin-top: 10PX" /> | <van-uploader v-model="fileList" multiple :after-read="afterRead" @delete="deleteFile1" style="margin-top: 10PX" /> | ||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事中公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="fileList2" multiple :after-read="afterRead2" @delete="deleteFile2" style="margin-top: 10PX" /> | |||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事后公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="fileList3" multiple :after-read="afterRead3" @delete="deleteFile3" style="margin-top: 10PX" /> | |||||
<div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | <div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | ||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
@@ -117,15 +102,11 @@ | |||||
form:{ | form:{ | ||||
openNy:this.format(new Date(),'yyyy-MM'), | openNy:this.format(new Date(),'yyyy-MM'), | ||||
openPic:'', | openPic:'', | ||||
openPic2:'', | |||||
openPic3:'', | |||||
openFile:'', | openFile:'', | ||||
openName:this.format(new Date(),'yyyy')+ '年' + (this.format(new Date(),'MM')-1) + '月零工公开' | openName:this.format(new Date(),'yyyy')+ '年' + (this.format(new Date(),'MM')-1) + '月零工公开' | ||||
}, | }, | ||||
openPic:[], | |||||
fileList:[], | fileList:[], | ||||
fileList1:[], | |||||
fileList2:[], | |||||
fileList3:[], | |||||
openNy:new Date(), | openNy:new Date(), | ||||
type:'', | type:'', | ||||
openFile:[], | openFile:[], | ||||
@@ -136,8 +117,6 @@ | |||||
}, | }, | ||||
openFile2:[], | openFile2:[], | ||||
openPic2:[], | openPic2:[], | ||||
openPic3:[], | |||||
openPic4:[], | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -159,8 +138,6 @@ | |||||
var that = this; | var that = this; | ||||
that.form.openFile = that.openFile2.join(',') | that.form.openFile = that.openFile2.join(',') | ||||
that.form.openPic = that.openPic2.join(',') | that.form.openPic = that.openPic2.join(',') | ||||
that.form.openPic2 = that.openPic3.join(',') | |||||
that.form.openPic3 = that.openPic4.join(',') | |||||
tempWorkerOpenAdd(that.form).then((r1) => { | tempWorkerOpenAdd(that.form).then((r1) => { | ||||
if (r1.code == 200){ | if (r1.code == 200){ | ||||
that.$notify({ type: 'success', message: '新增成功' }); | that.$notify({ type: 'success', message: '新增成功' }); | ||||
@@ -179,14 +156,6 @@ | |||||
this.openPic2.splice(detail.index,1) | this.openPic2.splice(detail.index,1) | ||||
// this.form.openPic.splice(index,1); | // this.form.openPic.splice(index,1); | ||||
}, | }, | ||||
deleteFile2(detail){ | |||||
this.openPic3.splice(detail.index,1) | |||||
// this.form.openPic.splice(index,1); | |||||
}, | |||||
deleteFile3(detail){ | |||||
this.openPic4.splice(detail.index,1) | |||||
// this.form.openPic.splice(index,1); | |||||
}, | |||||
deleteWord(index){ | deleteWord(index){ | ||||
this.openFileList.splice(index,1); | this.openFileList.splice(index,1); | ||||
this.openFile2.splice(index,1); | this.openFile2.splice(index,1); | ||||
@@ -214,52 +183,6 @@ | |||||
}) | }) | ||||
} | } | ||||
}, | }, | ||||
afterRead2(file) { | |||||
this.$toast.loading({ | |||||
message: "上传中...", | |||||
forbidClick: true, | |||||
duration: 0, | |||||
}); | |||||
// 此时可以自行将文件上传至服务器 | |||||
if (file instanceof Array){//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false | |||||
file.map(res=>{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", res.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic3.push(r1.fileName); | |||||
}) | |||||
}) | |||||
}else{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", file.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic3.push(r1.fileName); | |||||
}) | |||||
} | |||||
}, | |||||
afterRead3(file) { | |||||
this.$toast.loading({ | |||||
message: "上传中...", | |||||
forbidClick: true, | |||||
duration: 0, | |||||
}); | |||||
// 此时可以自行将文件上传至服务器 | |||||
if (file instanceof Array){//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false | |||||
file.map(res=>{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", res.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic4.push(r1.fileName); | |||||
}) | |||||
}) | |||||
}else{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", file.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic4.push(r1.fileName); | |||||
}) | |||||
} | |||||
}, | |||||
afterReadOpenFile(file){ | afterReadOpenFile(file){ | ||||
this.$toast.loading({ | this.$toast.loading({ | ||||
message: "上传中...", | message: "上传中...", | ||||
@@ -36,29 +36,12 @@ | |||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | <img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | ||||
<p style="margin-left: 5px;">事前公开</p> | |||||
<p style="margin-left: 5px;">公开图片</p> | |||||
</template> | </template> | ||||
</van-field> | </van-field> | ||||
<!-- @delete="deleteFile1"--> | <!-- @delete="deleteFile1"--> | ||||
<van-uploader v-model="openPic" :show-upload="false" :deletable="false" multiple style="margin-top: 10PX" /> | <van-uploader v-model="openPic" :show-upload="false" :deletable="false" multiple style="margin-top: 10PX" /> | ||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事中公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="openPic2" :show-upload="false" :deletable="false" multiple style="margin-top: 10PX" /> | |||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事后公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="openPic3" :show-upload="false" :deletable="false" multiple style="margin-top: 10PX" /> | |||||
<div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | <div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | ||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
@@ -71,7 +54,8 @@ | |||||
<div v-for="(item,index) in openFileList" :key="index" style="display: flex;align-items: center;margin-top: 10px;"> | <div v-for="(item,index) in openFileList" :key="index" style="display: flex;align-items: center;margin-top: 10px;"> | ||||
<img src="../../assets/images/sunVillage_info/WORD.png" width="30" v-if="item.type == 'word'"/> | <img src="../../assets/images/sunVillage_info/WORD.png" width="30" v-if="item.type == 'word'"/> | ||||
<img src="../../assets/images/sunVillage_info/ECEL.png" width="30" v-if="item.type == 'excel'" /> | <img src="../../assets/images/sunVillage_info/ECEL.png" width="30" v-if="item.type == 'excel'" /> | ||||
<a :href="item.url" style="margin-left: 10px;color: #333333">{{item.name}}</a> | |||||
<a v-if="item.type == 'word' || item.type == 'excel'" :href="item.url" style="margin-left: 10px;color: #333333">{{item.name}}</a> | |||||
<p v-else @click="goToPage(item.url)" style="margin-left: 10px;color: #333333">{{item.name}}</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -83,7 +67,11 @@ | |||||
</van-field> | </van-field> | ||||
</div> | </div> | ||||
<van-dialog v-model:show="fjImgShow" title="附件" :show-confirm-button="false" show-cancel-button cancelButtonText="关闭" > | |||||
<div style="width: 100%;height: 400px;overflow:scroll;"> | |||||
<img :src="fjImg" width="95%"/> | |||||
</div> | |||||
</van-dialog> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
@@ -99,13 +87,11 @@ | |||||
form:{ | form:{ | ||||
openNy:this.format(new Date(),'yyyy-MM'), | openNy:this.format(new Date(),'yyyy-MM'), | ||||
openPic:'', | openPic:'', | ||||
openPic2:'', | |||||
openPic3:'', | |||||
openFile:'', | openFile:'', | ||||
}, | }, | ||||
fjImg:'', | |||||
fjImgShow:false, | |||||
openPic:[], | openPic:[], | ||||
openPic2:[], | |||||
openPic3:[], | |||||
fileList:[], | fileList:[], | ||||
fileList1:[], | fileList1:[], | ||||
openNy:new Date(), | openNy:new Date(), | ||||
@@ -158,22 +144,29 @@ | |||||
this.openPic.push({url:'/api'+rrr}) | this.openPic.push({url:'/api'+rrr}) | ||||
}) | }) | ||||
} | } | ||||
if (res.data.openPic2 !='' && res.data.openPic2 != null && res.data.openPic2 != undefined){ | |||||
res.data.openPic2 = res.data.openPic2.split(',') | |||||
res.data.openPic2.map((rrr,i)=>{ | |||||
this.openPic2.push({url:'/api'+rrr}) | |||||
}) | |||||
} | |||||
if (res.data.openPic3 !='' && res.data.openPic3 != null && res.data.openPic3 != undefined){ | |||||
res.data.openPic3 = res.data.openPic3.split(',') | |||||
res.data.openPic3.map((rrr,i)=>{ | |||||
this.openPic3.push({url:'/api'+rrr}) | |||||
}) | |||||
} | |||||
this.form = res.data; | this.form = res.data; | ||||
}) | }) | ||||
}, | }, | ||||
goToPage(url) { | |||||
const baseImgUrl = this.$store.getters.baseRoutingUrl; | |||||
let subIndex = url.lastIndexOf("."); | |||||
let ext = url.substring(subIndex + 1, url.length); | |||||
//console.log(ext) | |||||
if (ext == "jpg" || ext == "png") { | |||||
url = url.substring(4,url.length); | |||||
this.fjImg = baseImgUrl + url; | |||||
this.fjImgShow = true; | |||||
}else{ | |||||
let allUrl = url; | |||||
const link = document.createElement("a"); | |||||
link.style.display = "none"; | |||||
link.target = "_blank" | |||||
link.href = allUrl; | |||||
document.body.appendChild(link); | |||||
link.click(); | |||||
document.body.removeChild(link); | |||||
} | |||||
}, | |||||
}, | }, | ||||
} | } | ||||
</script> | </script> | ||||
@@ -46,29 +46,12 @@ | |||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | <img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | ||||
<p style="margin-left: 5px;">事前公开</p> | |||||
<p style="margin-left: 5px;">公开图片</p> | |||||
</template> | </template> | ||||
</van-field> | </van-field> | ||||
<!-- @delete="deleteFile1"--> | <!-- @delete="deleteFile1"--> | ||||
<van-uploader v-model="openPic" multiple :after-read="afterRead" @delete="deleteFile1" style="margin-top: 10PX" /> | <van-uploader v-model="openPic" multiple :after-read="afterRead" @delete="deleteFile1" style="margin-top: 10PX" /> | ||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事中公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="openPicsz" multiple :after-read="afterRead2" @delete="deleteFile2" style="margin-top: 10PX" /> | |||||
<van-field readonly input-align="right" :border="false" > | |||||
<template #label> | |||||
<img src="../../assets/images/sunVillage_info/add_tit_icon_03.png" width="18"> | |||||
<p style="margin-left: 5px;">事后公开</p> | |||||
</template> | |||||
</van-field> | |||||
<!-- @delete="deleteFile1"--> | |||||
<van-uploader v-model="openPicsh" multiple :after-read="afterRead3" @delete="deleteFile3" style="margin-top: 10PX" /> | |||||
<div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | <div style="border-top: 1px solid #ededed;margin-top: 10PX;"> | ||||
<van-field readonly input-align="right" :border="false" > | <van-field readonly input-align="right" :border="false" > | ||||
<template #label> | <template #label> | ||||
@@ -119,13 +102,9 @@ | |||||
form:{ | form:{ | ||||
openNy:this.format(new Date(),'yyyy-MM'), | openNy:this.format(new Date(),'yyyy-MM'), | ||||
openPic:'', | openPic:'', | ||||
openPic2:'', | |||||
openPic3:'', | |||||
openFile:'', | openFile:'', | ||||
}, | }, | ||||
openPic:[], | openPic:[], | ||||
openPicsz:[], | |||||
openPicsh:[], | |||||
fileList:[], | fileList:[], | ||||
fileList1:[], | fileList1:[], | ||||
openNy:new Date(), | openNy:new Date(), | ||||
@@ -138,8 +117,6 @@ | |||||
deptId:'' | deptId:'' | ||||
}, | }, | ||||
openPic2:[], | openPic2:[], | ||||
openPic3:[], | |||||
openPic4:[], | |||||
openFile2:[] | openFile2:[] | ||||
}; | }; | ||||
}, | }, | ||||
@@ -184,20 +161,6 @@ | |||||
this.openPic[i] = {url:'/api'+rrr} | this.openPic[i] = {url:'/api'+rrr} | ||||
}) | }) | ||||
} | } | ||||
if (res.data.openPic2!='' && res.data.openPic2 != null && res.data.openPic2 != undefined){ | |||||
this.openPicsz = res.data.openPic2.split(',') | |||||
this.openPic3 = res.data.openPic2.split(',') | |||||
this.openPicsz.map((rrr,i)=>{ | |||||
this.openPicsz[i] = {url:'/api'+rrr} | |||||
}) | |||||
} | |||||
if (res.data.openPic3!='' && res.data.openPic3 != null && res.data.openPic3 != undefined){ | |||||
this.openPicsh = res.data.openPic3.split(',') | |||||
this.openPic4 = res.data.openPic3.split(',') | |||||
this.openPicsh.map((rrr,i)=>{ | |||||
this.openPicsh[i] = {url:'/api'+rrr} | |||||
}) | |||||
} | |||||
that.form = res.data; | that.form = res.data; | ||||
}) | }) | ||||
}, | }, | ||||
@@ -205,8 +168,6 @@ | |||||
var that = this; | var that = this; | ||||
that.form.openFile = that.openFile2.join(',') | that.form.openFile = that.openFile2.join(',') | ||||
that.form.openPic = that.openPic2.join(',') | that.form.openPic = that.openPic2.join(',') | ||||
that.form.openPic2 = that.openPic3.join(',') | |||||
that.form.openPic3 = that.openPic4.join(',') | |||||
tempWorkerOpenEdit(that.form).then((r1) => { | tempWorkerOpenEdit(that.form).then((r1) => { | ||||
if (r1.code == 200){ | if (r1.code == 200){ | ||||
that.$notify({ type: 'success', message: '修改成功' }); | that.$notify({ type: 'success', message: '修改成功' }); | ||||
@@ -222,16 +183,9 @@ | |||||
this.showBuildTime = false; | this.showBuildTime = false; | ||||
}, | }, | ||||
deleteFile1(file,detail){ | deleteFile1(file,detail){ | ||||
console.log(detail) | |||||
//console.log(detail) | |||||
this.openPic2.splice(detail.index,1) | this.openPic2.splice(detail.index,1) | ||||
}, | }, | ||||
deleteFile2(file,detail){ | |||||
console.log(detail) | |||||
this.openPic3.splice(detail.index,1) | |||||
}, | |||||
deleteFile3(file,detail){ | |||||
this.openPic4.splice(detail.index,1) | |||||
}, | |||||
deleteWord(index){ | deleteWord(index){ | ||||
this.openFile.splice(index,1); | this.openFile.splice(index,1); | ||||
this.openFile2.splice(index,1); | this.openFile2.splice(index,1); | ||||
@@ -259,52 +213,6 @@ | |||||
}) | }) | ||||
} | } | ||||
}, | }, | ||||
afterRead2(file) { | |||||
this.$toast.loading({ | |||||
message: "上传中...", | |||||
forbidClick: true, | |||||
duration: 0, | |||||
}); | |||||
// 此时可以自行将文件上传至服务器 | |||||
if (file instanceof Array){//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false | |||||
file.map(res=>{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", res.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic3.push(r1.fileName); | |||||
}) | |||||
}) | |||||
}else{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", file.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic3.push(r1.fileName); | |||||
}) | |||||
} | |||||
}, | |||||
afterRead3(file) { | |||||
this.$toast.loading({ | |||||
message: "上传中...", | |||||
forbidClick: true, | |||||
duration: 0, | |||||
}); | |||||
// 此时可以自行将文件上传至服务器 | |||||
if (file instanceof Array){//判断是否为数组,单张图片为array,多张为数组,数组返回true否则为false | |||||
file.map(res=>{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", res.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic4.push(r1.fileName); | |||||
}) | |||||
}) | |||||
}else{ | |||||
let params1 = new FormData(); | |||||
params1.append("file", file.file); | |||||
commonUpload(params1).then((r1) => { | |||||
this.openPic4.push(r1.fileName); | |||||
}) | |||||
} | |||||
}, | |||||
afterReadOpenFile(file){ | afterReadOpenFile(file){ | ||||
this.$toast.loading({ | this.$toast.loading({ | ||||
message: "上传中...", | message: "上传中...", | ||||
@@ -25,7 +25,7 @@ | |||||
<van-row> | <van-row> | ||||
<van-col :span="24">姓名</van-col> | <van-col :span="24">姓名</van-col> | ||||
</van-row> | </van-row> | ||||
<van-row v-for="(item,index) in applicationList" :key="index"> | |||||
<van-row v-for="(item,index) in applicationList" :key="index" @click.prevent ="viewItem(item.id)"> | |||||
<van-col :span="24">{{item.workerName}}</van-col> | <van-col :span="24">{{item.workerName}}</van-col> | ||||
</van-row> | </van-row> | ||||
<div class="name_bg"></div> | <div class="name_bg"></div> | ||||
@@ -41,7 +41,7 @@ | |||||
<van-col :span="5">工日值</van-col> | <van-col :span="5">工日值</van-col> | ||||
<van-col :span="4">金额(元)</van-col> | <van-col :span="4">金额(元)</van-col> | ||||
</van-row> | </van-row> | ||||
<van-row v-for="(item,index) in applicationList" :key="index"> | |||||
<van-row v-for="(item,index) in applicationList" :key="index" @click="viewItem(item.id)"> | |||||
<van-col :span="5">{{item.workReason}}</van-col> | <van-col :span="5">{{item.workReason}}</van-col> | ||||
<van-col :span="5">{{item.workerNote}}</van-col> | <van-col :span="5">{{item.workerNote}}</van-col> | ||||
<van-col :span="5">{{item.workNum}}</van-col> | <van-col :span="5">{{item.workNum}}</van-col> | ||||
@@ -80,7 +80,7 @@ | |||||
queryParams:{ | queryParams:{ | ||||
pageNum:1, | pageNum:1, | ||||
pageSize:10, | pageSize:10, | ||||
orderByColumn:'openNy', | |||||
orderByColumn:'jobNy', | |||||
isAsc:'desc', | isAsc:'desc', | ||||
year:'', | year:'', | ||||
}, | }, | ||||
@@ -104,7 +104,7 @@ | |||||
getList(){ | getList(){ | ||||
var _this = this; | var _this = this; | ||||
setTimeout(() => { | setTimeout(() => { | ||||
console.log(_this.queryParams) | |||||
//console.log(_this.queryParams) | |||||
listOddjob(_this.queryParams).then(response => { | listOddjob(_this.queryParams).then(response => { | ||||
_this.listLength = response.total; | _this.listLength = response.total; | ||||
_this.applicationList = response.rows; | _this.applicationList = response.rows; | ||||
@@ -119,6 +119,15 @@ | |||||
}); | }); | ||||
}, 1000); | }, 1000); | ||||
}, | }, | ||||
viewItem(id){ | |||||
this.$router.push({ | |||||
path: "/sunVillage_info/list_tourists_registration_detail", | |||||
query: { | |||||
id: id, | |||||
intent: 'view', | |||||
}, | |||||
}).catch(() => {}); | |||||
}, | |||||
}, | }, | ||||
} | } | ||||
</script> | </script> | ||||
@@ -378,6 +387,7 @@ | |||||
height: 100%; | height: 100%; | ||||
position: absolute; | position: absolute; | ||||
top: 0; | top: 0; | ||||
pointer-events: none; | |||||
} | } | ||||
.name_icon{ | .name_icon{ | ||||
position: absolute; | position: absolute; | ||||
@@ -29,8 +29,8 @@ | |||||
<van-row> | <van-row> | ||||
<van-col :span="24">姓名</van-col> | <van-col :span="24">姓名</van-col> | ||||
</van-row> | </van-row> | ||||
<van-row v-for="(item,index) in 10" :key="index"> | |||||
<van-col :span="24">张三</van-col> | |||||
<van-row v-for="(item,index) in oddjobList" :key="index"> | |||||
<van-col :span="24" @click="onItemClicked(item, index)">{{item.workerName}}</van-col> | |||||
</van-row> | </van-row> | ||||
<div class="name_bg"></div> | <div class="name_bg"></div> | ||||
<img src="../../assets/images/sunVillage_info/name_icon.png" class="name_icon"/> | <img src="../../assets/images/sunVillage_info/name_icon.png" class="name_icon"/> | ||||
@@ -43,10 +43,10 @@ | |||||
<van-col :span="8">出工事由</van-col> | <van-col :span="8">出工事由</van-col> | ||||
<van-col :span="8">出工数</van-col> | <van-col :span="8">出工数</van-col> | ||||
</van-row> | </van-row> | ||||
<van-row v-for="(item,index) in 10" :key="index"> | |||||
<van-col :span="8">2023-03-05</van-col> | |||||
<van-col :span="8">上班打卡</van-col> | |||||
<van-col :span="8">8</van-col> | |||||
<van-row v-for="(item,index) in oddjobList" :key="index" @click="onItemClicked(item, index)"> | |||||
<van-col :span="8">{{item.jobTime}}</van-col> | |||||
<van-col :span="8">{{item.workReason}}</van-col> | |||||
<van-col :span="8">{{item.workNum}}</van-col> | |||||
</van-row> | </van-row> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
@@ -54,12 +54,43 @@ | |||||
<div class="clear"></div> | <div class="clear"></div> | ||||
</div> | </div> | ||||
<van-popup | |||||
v-model="menuOpen" | |||||
:closeable="false" | |||||
close-icon="close" | |||||
position="bottom" | |||||
@close="onMenuClose" | |||||
> | |||||
<van-grid :column-num="3"> | |||||
<van-grid-item text="查看" @click="viewItem(menuId)"> | |||||
<template #icon> | |||||
<div class="menu_btn view"> | |||||
<i class="icon "></i> | |||||
</div> | |||||
</template> | |||||
</van-grid-item> | |||||
<van-grid-item text="修改" @click="editItem(menuId)"> | |||||
<template #icon> | |||||
<div class="menu_btn edit"> | |||||
<i class="icon "></i> | |||||
</div> | |||||
</template> | |||||
</van-grid-item> | |||||
<van-grid-item text="删除" @click="removeItem(menuId)"> | |||||
<template #icon> | |||||
<div class="menu_btn delete"> | |||||
<i class="icon "></i> | |||||
</div> | |||||
</template> | |||||
</van-grid-item> | |||||
</van-grid> | |||||
</van-popup> | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { listOddjob } from "@/api/sunVillage_info/fixedAssets"; | |||||
import {delOddjob, listOddjob, tempWorkerOpenRemove} from "@/api/sunVillage_info/fixedAssets"; | |||||
import Cookies from "js-cookie"; | import Cookies from "js-cookie"; | ||||
import request from '@/utils/request' | import request from '@/utils/request' | ||||
export default { | export default { | ||||
@@ -77,6 +108,7 @@ | |||||
fileList:[], | fileList:[], | ||||
listLength:'0', | listLength:'0', | ||||
searchInput:'', | searchInput:'', | ||||
pageNum:0, | |||||
queryParams:{ | queryParams:{ | ||||
pageNum:1, | pageNum:1, | ||||
pageSize:10, | pageSize:10, | ||||
@@ -92,8 +124,11 @@ | |||||
showBtn:true, | showBtn:true, | ||||
yearMonth:[], | yearMonth:[], | ||||
yearList:[], | yearList:[], | ||||
oddjobList:[], | |||||
deptName:'', | deptName:'', | ||||
nowYear:new Date().getFullYear(), | nowYear:new Date().getFullYear(), | ||||
menuOpen: false, | |||||
menuId: null, | |||||
}; | }; | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -109,7 +144,14 @@ | |||||
methods: { | methods: { | ||||
getList(){ | getList(){ | ||||
var _this = this; | var _this = this; | ||||
let params = { | |||||
bookId:this.queryParams.bookId, | |||||
yearMonth:this.queryParams.yearMonth, | |||||
} | |||||
listOddjob(params).then(response => { | |||||
this.listLength = response.total; | |||||
this.oddjobList = response.rows; | |||||
}); | |||||
}, | }, | ||||
tabClickMonth(month){ | tabClickMonth(month){ | ||||
this.month = month ; | this.month = month ; | ||||
@@ -140,7 +182,68 @@ | |||||
this.applicationList = []; | this.applicationList = []; | ||||
this.getList(); | this.getList(); | ||||
}, | }, | ||||
onItemClicked(item, index) { | |||||
console.log(`点击(${item.id})`); | |||||
this.menuId = item.id; | |||||
this.menuOpen = true; | |||||
}, | |||||
onMenuClose() { | |||||
this.menuId = null; | |||||
}, | |||||
viewItem(id){ | |||||
console.log(`查看(${id})`); | |||||
this.menuOpen = false; | |||||
if(!id) | |||||
return; | |||||
this.$router.push({ | |||||
path: "/sunVillage_info/list_tourists_registration_detail", | |||||
query: { | |||||
id: id, | |||||
intent: 'view', | |||||
}, | |||||
}).catch(() => {}); | |||||
}, | |||||
editItem(id){ | |||||
console.log(`编辑(${id})`); | |||||
this.menuOpen = false; | |||||
if(!id) | |||||
return; | |||||
this.$router.push({ | |||||
path: "/sunVillage_info/list_tourists_registration_edit", | |||||
query: { | |||||
id: id, | |||||
intent: 'edit', | |||||
}, | |||||
}).catch(() => {}); | |||||
}, | |||||
removeItem(id){ | |||||
console.log(`移除(${id})`); | |||||
this.menuOpen = false; | |||||
if(!id) | |||||
return; | |||||
this.$dialog.alert({ | |||||
title: '提示', | |||||
message: '确认删除?', | |||||
showCancelButton:true, | |||||
}).then(() => { | |||||
delOddjob(id).then(response => { | |||||
this.$notify({ type: 'success', message: '删除成功' }); | |||||
/*this.$toast({ | |||||
icon: 'success', | |||||
message: '删除成功', | |||||
duration:"1000", | |||||
});*/ | |||||
this.listLength = 0; | |||||
this.oddjobList = []; | |||||
this.getList() | |||||
}); | |||||
}).catch(() => { | |||||
// on cancel | |||||
}); | |||||
} | |||||
}, | }, | ||||
} | } | ||||
</script> | </script> | ||||
@@ -431,6 +534,7 @@ | |||||
height: 100%; | height: 100%; | ||||
position: absolute; | position: absolute; | ||||
top: 0; | top: 0; | ||||
pointer-events: none; | |||||
} | } | ||||
.name_icon{ | .name_icon{ | ||||
position: absolute; | position: absolute; | ||||
@@ -492,4 +596,43 @@ | |||||
.clear{ | .clear{ | ||||
clear: both; | clear: both; | ||||
} | } | ||||
.menu_btn{ | |||||
width: 52px; | |||||
height: 52px; | |||||
border-radius: 50%; | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content:center; | |||||
&.delete{ | |||||
background:#df0707; | |||||
.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; | |||||
.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; | |||||
.icon { | |||||
width: 29px; | |||||
height: 21px; | |||||
background: url('../../assets/images/sunVillage_info/list_icon_3.png') no-repeat; | |||||
background-size: 100% 100%; | |||||
display: block; | |||||
} | |||||
} | |||||
} | |||||
</style> | </style> |
@@ -2,52 +2,66 @@ | |||||
<div class="home_wrapper"> | <div class="home_wrapper"> | ||||
<div class="header_main"> | <div class="header_main"> | ||||
零工登记 | 零工登记 | ||||
<div class="return_btn" @click="onClickLeft"></div> | |||||
<div class="return_btn" @click="back"></div> | |||||
</div> | </div> | ||||
<van-form > | |||||
<van-form ref="formData"> | |||||
<div class="list_main"> | <div class="list_main"> | ||||
<div class="titBox"> | <div class="titBox"> | ||||
<img src="../../assets/images/sunVillage_info/add_icon_3.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | <img src="../../assets/images/sunVillage_info/add_icon_3.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | ||||
<p class="tit">添加零工</p> | <p class="tit">添加零工</p> | ||||
</div> | </div> | ||||
<field-date-picker | |||||
v-model="form.jobTime" | |||||
label="出工日期" | |||||
placeholder="请选择" | |||||
:rules="[{ required: true, message:'请选择出工日期' }]" | |||||
formatter="yyyy-MM-dd" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
:required="true" | |||||
/> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工姓名' }]" v-model="form.workerName" label="出工姓名" placeholder="出工姓名" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工事由' }]" v-model="form.workReason" label="出工事由" placeholder="出工事由" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写记工员' }]" v-model="form.workerNote" label="记工员" placeholder="记工员" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工数' }]" v-model="form.workNum" label="出工数" placeholder="出工数" input-align="right" :border="false" type="number" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写工日值' }]" v-model="form.perMoney" label="工日值" placeholder="工日值" input-align="right" :border="false" type="number" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写金额(元)' }]" v-model="form.totalMoney" label="金额(元)" placeholder="金额(元)" input-align="right" :border="false" type="number" /> | |||||
<van-field | <van-field | ||||
readonly | |||||
clickable | |||||
label="出工日期" | |||||
placeholder="请选择" | |||||
v-model="value" | |||||
@click="showBuildTime = true" | |||||
name="openPic" | |||||
label="事前公开" | |||||
input-align="right" | input-align="right" | ||||
right-icon="arrow-down" | |||||
label-width="auto" | |||||
required | |||||
:border="false" | :border="false" | ||||
:rules="[{ required: true , message:'请选择出工日期' }]" | |||||
/> | |||||
<van-popup v-model="showBuildTime" position="bottom"> | |||||
<van-datetime-picker | |||||
type="date" | |||||
title="选择年月日" | |||||
:min-date="minDate" | |||||
v-model="buildTime" | |||||
@confirm="onConfirmBuildTime" | |||||
@cancel="showBuildTime = false" | |||||
/> | |||||
</van-popup> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工姓名' }]" v-model="value" label="出工姓名" placeholder="出工姓名" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工事由' }]" v-model="value" label="出工事由" placeholder="出工事由" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写记工员' }]" v-model="value" label="记工员" placeholder="记工员" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工数' }]" v-model="value" label="出工数" placeholder="出工数" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写工日值' }]" v-model="value" label="工日值" placeholder="工日值" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写金额(元)' }]" v-model="value" label="金额(元)" placeholder="金额(元)" input-align="right" :border="false" /> | |||||
<van-field v-model="value" label="备注" placeholder="备注" input-align="right" :border="false" /> | |||||
> | |||||
</van-field> | |||||
<CommonUpload name="openPic" v-model="form.openPic" 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 v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false" /> | |||||
</div> | </div> | ||||
<div style="margin: 16px auto;width: 50%;"> | <div style="margin: 16px auto;width: 50%;"> | ||||
<van-button round block type="primary" native-type="submit"> | |||||
<van-button round block type="primary" @click="submitForm"> | |||||
保存 | 保存 | ||||
</van-button> | </van-button> | ||||
</div> | </div> | ||||
@@ -55,16 +69,39 @@ | |||||
</div> | </div> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import { addPermanent } from "@/api/sunVillage_info/fixedAssets"; | |||||
import { addOddjob,updateOddjob } from "@/api/sunVillage_info/fixedAssets"; | |||||
import CommonUpload from "@/components/form/CommonUpload.vue"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker.vue"; | |||||
export default { | export default { | ||||
name: "certificateList", | |||||
name: "listTouristsRegistrationAdd", | |||||
components: {FieldDatePicker, CommonUpload}, | |||||
data() { | data() { | ||||
return { | return { | ||||
minDate:new Date(1900,1,1), | minDate:new Date(1900,1,1), | ||||
showBuildTime:false, | |||||
buildTime:new Date(), | |||||
maxDate: new Date(2050, 12, 31), | |||||
form:{ | |||||
id: null, | |||||
bookId: null, | |||||
deptId: null, | |||||
deptName: null, | |||||
jobNy: null, | |||||
jobTime: null, | |||||
workerName: null, | |||||
workReason: null, | |||||
workerNote: null, | |||||
workNum: null, | |||||
perMoney: null, | |||||
totalMoney: null, | |||||
remark: null, | |||||
openPic: null, | |||||
openPic2: null, | |||||
openPic3: null, | |||||
createBy: null, | |||||
createTime: null, | |||||
updateBy: null, | |||||
updateTime: null | |||||
}, | |||||
value:'' | value:'' | ||||
}; | }; | ||||
@@ -73,9 +110,26 @@ | |||||
}, | }, | ||||
methods: { | methods: { | ||||
onConfirmBuildTime(data){ | |||||
this.form.buildTime = this.format(data,'yyyy-MM-dd'); | |||||
this.showBuildTime = false; | |||||
submitForm(){ | |||||
this.$refs.formData.validate().then(() => { | |||||
addOddjob(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
}); | |||||
setTimeout(() => { | |||||
this.$router.back(); | |||||
},2000) | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
back() { | |||||
this.$router.back(); | |||||
}, | }, | ||||
}, | }, | ||||
} | } | ||||
@@ -0,0 +1,188 @@ | |||||
<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 v-model="form.jobTime" label="出工日期" input-align="right" :border="false" /> | |||||
<van-field v-model="form.workerName" label="出工姓名" input-align="right" :border="false" /> | |||||
<van-field v-model="form.workReason" label="出工事由" input-align="right" :border="false" /> | |||||
<van-field v-model="form.workerNote" label="记工员" input-align="right" :border="false" /> | |||||
<van-field v-model="form.workNum" label="出工数" input-align="right" :border="false" type="number" /> | |||||
<van-field v-model="form.perMoney" label="工日值" input-align="right" :border="false" type="number" /> | |||||
<van-field v-model="form.totalMoney" label="金额(元)" input-align="right" :border="false" type="number" /> | |||||
<van-field | |||||
name="openPic" | |||||
label="事前公开" | |||||
input-align="right" | |||||
:border="false" | |||||
> | |||||
</van-field> | |||||
<CommonUpload name="openPic" v-model="form.openPic" multiple :deletable="false" :show-upload="false"/> | |||||
<van-field | |||||
name="openPic2" | |||||
label="事中公开" | |||||
input-align="right" | |||||
:border="false" | |||||
> | |||||
</van-field> | |||||
<CommonUpload name="openPic2" v-model="form.openPic2" multiple :deletable="false" :show-upload="false"/> | |||||
<van-field | |||||
name="openPic3" | |||||
label="事后公开" | |||||
input-align="right" | |||||
:border="false" | |||||
> | |||||
</van-field> | |||||
<CommonUpload name="openPic3" v-model="form.openPic3" multiple :deletable="false" :show-upload="false"/> | |||||
<van-field v-model="form.remark" label="备注" input-align="left" :border="false" /> | |||||
</div> | |||||
</van-form> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {addOddjob, getOddjob, updateOddjob} from "@/api/sunVillage_info/fixedAssets"; | |||||
import CommonUpload from "@/components/form/CommonUpload.vue"; | |||||
export default { | |||||
name: "listTouristsRegistrationDetail", | |||||
components: {CommonUpload}, | |||||
data() { | |||||
return { | |||||
form: { | |||||
id: null, | |||||
bookId: null, | |||||
deptId: null, | |||||
deptName: null, | |||||
jobNy: null, | |||||
jobTime: null, | |||||
workerName: null, | |||||
workReason: null, | |||||
workerNote: null, | |||||
workNum: null, | |||||
perMoney: null, | |||||
totalMoney: null, | |||||
remark: null, | |||||
openPic: 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; | |||||
} | |||||
getOddjob(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,230 @@ | |||||
<template> | |||||
<div class="home_wrapper"> | |||||
<div class="header_main"> | |||||
零工登记 | |||||
<div class="return_btn" @click="back"></div> | |||||
</div> | |||||
<van-form ref="formData"> | |||||
<div class="list_main"> | |||||
<div class="titBox"> | |||||
<img src="../../assets/images/sunVillage_info/add_icon_3.png" style="width:22PX;height:22PX;margin-right: 10px;"/> | |||||
<p class="tit">修改零工</p> | |||||
</div> | |||||
<field-date-picker | |||||
v-model="form.jobTime" | |||||
label="出工日期" | |||||
placeholder="请选择" | |||||
:rules="[{ required: true, message:'请选择出工日期' }]" | |||||
formatter="yyyy-MM-dd" | |||||
:min-date="minDate" | |||||
:max-date="maxDate" | |||||
:required="true" | |||||
/> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工姓名' }]" v-model="form.workerName" label="出工姓名" placeholder="出工姓名" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工事由' }]" v-model="form.workReason" label="出工事由" placeholder="出工事由" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写记工员' }]" v-model="form.workerNote" label="记工员" placeholder="记工员" input-align="right" :border="false" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写出工数' }]" v-model="form.workNum" label="出工数" placeholder="出工数" input-align="right" :border="false" type="number" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写工日值' }]" v-model="form.perMoney" label="工日值" placeholder="工日值" input-align="right" :border="false" type="number" /> | |||||
<van-field required :rules="[{ required: true, message: '请填写金额(元)' }]" v-model="form.totalMoney" label="金额(元)" placeholder="金额(元)" input-align="right" :border="false" type="number" /> | |||||
<van-field | |||||
name="openPic" | |||||
label="事前公开" | |||||
input-align="right" | |||||
:border="false" | |||||
> | |||||
</van-field> | |||||
<CommonUpload name="openPic" v-model="form.openPic" 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 v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false" /> | |||||
</div> | |||||
<div style="margin: 16px auto;width: 50%;"> | |||||
<van-button round block type="primary" @click="submitForm"> | |||||
保存 | |||||
</van-button> | |||||
</div> | |||||
</van-form> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {addOddjob, getOddjob, updateOddjob} from "@/api/sunVillage_info/fixedAssets"; | |||||
import CommonUpload from "@/components/form/CommonUpload.vue"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker.vue"; | |||||
export default { | |||||
name: "listTouristsRegistrationEdit", | |||||
components: {FieldDatePicker, CommonUpload}, | |||||
data() { | |||||
return { | |||||
minDate:new Date(1900,1,1), | |||||
maxDate: new Date(2050, 12, 31), | |||||
form:{ | |||||
id: null, | |||||
bookId: null, | |||||
deptId: null, | |||||
deptName: null, | |||||
jobNy: null, | |||||
jobTime: null, | |||||
workerName: null, | |||||
workReason: null, | |||||
workerNote: null, | |||||
workNum: null, | |||||
perMoney: null, | |||||
totalMoney: null, | |||||
remark: null, | |||||
openPic: 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; | |||||
} | |||||
getOddjob(this.id).then((resp) => { | |||||
this.form = resp.data; | |||||
}); | |||||
}, | |||||
submitForm(){ | |||||
this.$refs.formData.validate().then(() => { | |||||
updateOddjob(this.form).then(response => { | |||||
if (response.code == 200) { | |||||
this.$toast({ | |||||
icon: 'success', | |||||
message: '保存成功', | |||||
duration:"1000", | |||||
}); | |||||
setTimeout(() => { | |||||
this.$router.back(); | |||||
},2000) | |||||
} | |||||
}); | |||||
}).catch(() => { | |||||
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); | |||||
}); | |||||
}, | |||||
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> |