Procházet zdrojové kódy

Task 零工登记

rongxin_dev
zhaodengke před 8 měsíci
rodič
revize
024f389d52
8 změnil soubory, kde provedl 828 přidání a 66 odebrání
  1. +160
    -0
      src/components/form/CommonUpload.vue
  2. +3
    -0
      src/components/form/FieldDatePicker.vue
  3. +18
    -0
      src/router/index.js
  4. +1
    -1
      src/utils/request.js
  5. +148
    -4
      src/views/sunVillage_info/list_tourists_registration.vue
  6. +80
    -61
      src/views/sunVillage_info/list_tourists_registration_add.vue
  7. +188
    -0
      src/views/sunVillage_info/list_tourists_registration_detail.vue
  8. +230
    -0
      src/views/sunVillage_info/list_tourists_registration_edit.vue

+ 160
- 0
src/components/form/CommonUpload.vue Zobrazit soubor

@@ -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>

+ 3
- 0
src/components/form/FieldDatePicker.vue Zobrazit soubor

@@ -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) {


+ 18
- 0
src/router/index.js Zobrazit soubor

@@ -3660,6 +3660,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',


+ 1
- 1
src/utils/request.js Zobrazit soubor

@@ -69,7 +69,7 @@ if(responseInterceptor === undefined){
// 获取错误信息 // 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default'] const msg = errorCode[code] || res.data.msg || errorCode['default']
// console.info(gqnum); && gqnum === 0 // console.info(gqnum); && gqnum === 0
console.log(code)
// console.log(code)
if (code === 401) { if (code === 401) {
// gqnum++; // gqnum++;
Dialog.confirm({ Dialog.confirm({


+ 148
- 4
src/views/sunVillage_info/list_tourists_registration.vue Zobrazit soubor

@@ -1,7 +1,7 @@
<template> <template>
<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="onClickLeft"></div>
<div class="add_btn" v-show="showBtn" @click="$router.push({path:'/sunVillage_info/list_tourists_registration_add'})"></div> <div class="add_btn" v-show="showBtn" @click="$router.push({path:'/sunVillage_info/list_tourists_registration_add'})"></div>
</div> </div>
@@ -30,7 +30,7 @@
<van-col :span="24">姓名</van-col> <van-col :span="24">姓名</van-col>
</van-row> </van-row>
<van-row v-for="(item,index) in oddjobList" :key="index"> <van-row v-for="(item,index) in oddjobList" :key="index">
<van-col :span="24">{{item.workerName}}</van-col>
<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,7 +43,7 @@
<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 oddjobList" :key="index">
<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.jobTime}}</van-col>
<van-col :span="8">{{item.workReason}}</van-col> <van-col :span="8">{{item.workReason}}</van-col>
<van-col :span="8">{{item.workNum}}</van-col> <van-col :span="8">{{item.workNum}}</van-col>
@@ -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="opera_btn view">
<i class="icon "></i>
</div>
</template>
</van-grid-item>
<van-grid-item text="修改" @click="editItem(menuId)">
<template #icon>
<div class="opera_btn edit">
<i class="icon "></i>
</div>
</template>
</van-grid-item>
<van-grid-item text="删除" @click="removeItem(menuId)">
<template #icon>
<div class="opera_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 {
@@ -96,6 +127,8 @@
oddjobList:[], oddjobList:[],
deptName:'', deptName:'',
nowYear:new Date().getFullYear(), nowYear:new Date().getFullYear(),
menuOpen: false,
menuId: null,
}; };
}, },
created() { created() {
@@ -149,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>
@@ -440,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;
@@ -501,4 +596,53 @@
.clear{ .clear{
clear: both; clear: both;
} }
.opera_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;
}
}
&.list{
background: #79cf13;
.icon {
width: 29px;
height: 21px;
background: url('../../assets/images/sunVillage_info/list_icon_10.png') no-repeat;
background-size: 100% 100%;
display: block;
}
}
}
</style> </style>

+ 80
- 61
src/views/sunVillage_info/list_tourists_registration_add.vue Zobrazit soubor

@@ -2,7 +2,7 @@
<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 ref="formData"> <van-form ref="formData">
<div class="list_main"> <div class="list_main">
@@ -11,38 +11,51 @@
<p class="tit">添加零工</p> <p class="tit">添加零工</p>
</div> </div>


<van-field
readonly
clickable
label="出工日期"
placeholder="请选择"
v-model="form.jobTime"
@click="showBuildTime = true"
input-align="right"
right-icon="arrow-down"
label-width="auto"
required
:border="false"
:rules="[{ required: true , message:'请选择出工日期' }]"
/>
<van-popup v-model="showBuildTime" position="bottom">
<van-datetime-picker
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
:value="new Date"
@confirm="onConfirmBuildTime"
@cancel="showBuildTime = false"
<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-popup>


<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.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.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.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" />
<van-field required :rules="[{ required: true, message: '请填写工日值' }]" v-model="form.perMoney" label="工日值" placeholder="工日值" input-align="right" :border="false" />
<van-field required :rules="[{ required: true, message: '请填写金额(元)' }]" v-model="form.totalMoney" 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" /> <van-field v-model="form.remark" label="备注" placeholder="备注" input-align="right" :border="false" />


</div> </div>
@@ -57,16 +70,38 @@
</template> </template>
<script> <script>
import { addOddjob,updateOddjob } 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),
maxDate: new Date(2050, 12, 31), maxDate: new Date(2050, 12, 31),


showBuildTime:false,
form:{},
buildTime:new Date(),
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:''
}; };
@@ -75,43 +110,27 @@


}, },
methods: { methods: {
onConfirmBuildTime(data){
this.form.jobTime = this.format(data,'yyyy-MM-dd');
this.showBuildTime = false;
},
submitForm(){ submitForm(){
this.$refs.formData.validate().then(() => { this.$refs.formData.validate().then(() => {
if (this.form.id) {
updateOddjob(this.form).then(response => {
if (response.code == 200) {
this.$toast({
icon: 'success',
message: '保存成功',
duration:"1000",
});
setTimeout(function(){
history.back(-1);
},2000)
}
});
} else {
addOddjob(this.form).then(response => { addOddjob(this.form).then(response => {
if (response.code == 200) {
this.$toast({
icon: 'success',
message: '保存成功',
duration:"1000",
});
setTimeout(function(){
history.back(-1);
},2000)
}
if (response.code == 200) {
this.$toast({
icon: 'success',
message: '保存成功',
duration:"1000",
});
setTimeout(() => {
this.$router.back();
},2000)
}
}); });
}
}).catch(() => { }).catch(() => {
this.$notify({ type: 'danger', message: '请填写完整的表单项' }); this.$notify({ type: 'danger', message: '请填写完整的表单项' });
}); });
}, },
back() {
this.$router.back();
},
}, },
} }
</script> </script>


+ 188
- 0
src/views/sunVillage_info/list_tourists_registration_detail.vue Zobrazit soubor

@@ -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="right" :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>

+ 230
- 0
src/views/sunVillage_info/list_tourists_registration_edit.vue Zobrazit soubor

@@ -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>

Načítá se…
Zrušit
Uložit