factory_mp_old/pages/workSpace/newWork/visit.vue

851 lines
17 KiB
Vue
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="qingjia-apply">
<uni-nav-bar @clickLeft="goBack()" class="nav-bar" height="110rpx" leftWidth="200rpx" leftText="入厂项目"
leftIcon="left" border backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>
<view class="apply-info">
<view class="form-content ">
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访事由</text>
</view>
<view class="form-right">
<uni-data-select v-model="formData.purpose" :localdata="range" label="来访事由">
</uni-data-select>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访概述</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.name" maxlength="50" placeholder="来访概述" />
</view>
</view>
<view class="form-item border-bottom" style="height: 300rpx;">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访详述</text>
</view>
<view class="form-right">
<textarea class="apply-reason-text" v-model="formData.description" maxlength="250"
placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访时间</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.visit_time" @change="bindStartDateChange">
<view class="uni-input">{{formData.visit_time}}</view>
</picker>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">离开时间</text>
</view>
<view class="form-right form-date">
<picker mode="date" :value="formData.leave_time" @change="bindEndDateChange">
<view class="uni-input">{{formData.leave_time}}</view>
</picker>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">接待人</text>
</view>
<view class="form-right">
<uni-data-select v-model="formData.receptionist" :localdata="userRange" label="相关方">
</uni-data-select>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访单位</text>
</view>
<view class="form-right">
<input type="text" v-model="formData.company" maxlength="50" placeholder="请输入" />
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访级别</text>
</view>
<view class="form-right">
<uni-data-select v-model="formData.level" :localdata="levelRange" label="来访级别">
</uni-data-select>
</view>
</view>
<view class="form-item border-bottom">
<view class="form-left">
<text class="star">*</text>
<text class="form-left-text">来访人数</text>
</view>
<view class="form-right">
<input type="number" v-model="formData.count_people" maxlength="50" placeholder="来访人数" />
</view>
</view>
<view class="btn">
<button type="primary" class="save-btn" @click="nextHandle">下一步</button>
</view>
</view>
</view>
</view>
</template>
<script>
/* 这是条件编译,意思是只在APP中出现如下的代码小程序是不支持的 */
var that;
var promise;
export default {
name: "visit",
data() {
const currentDate = this.getDate({
format: true
})
return {
date: currentDate,
formData: {
name: '', //来访概述
purpose: '', //来访事由
receptionist: '', //接待人
visit_time: currentDate, //来访时间
leave_time: currentDate, //离开时间
description: '', //来访详述
company: '', //来访单位
level: '', //来访级别
count_people: '', //来访人数
},
depRange: [],
publishRangeCon: '',
menuId: "",
itemId: "",
detail: false,
principal: {},
pkId: '',
isDisabled: false,
btnShow: true,
lsId: "",
sta: null,
eventStatus: "",
execId: '',
// 2022年3月20日
result: [],
// 文件进度
imgFlag: false,
//文件下载
downFiles: {},
timeShow: false,
// 发布网站
releaseWeb: [],
createTimeFromShow: false,
createTimeFromList: [],
createTimeFromCon: '',
range: [{
text: "参观",
value: 10
}, {
text: "拜访",
value: 20
}, {
text: "面试",
value: 30
}, {
text: "开会",
value: 40
}],
levelRange: [{
text: "一般",
value: 10
}, {
text: "重要",
value: 20
}],
userRange:[],
}
},
computed: {
startDate() {
return this.getDate('start');
},
endDate() {
return this.getDate('end');
}
},
onShow() {
this.getUserRange();
},
methods: {
//获取用户
getUserRange() {
this.$u.api.userList({page: 0}).then(res => {
let user = [];
let obj = {};
res.forEach(item => {
obj = {value: null,text: ''};
obj.value = item.id;
obj.text = item.name;
user.push(obj);
})
this.userRange = user
})
},
getDate(type) {
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
if (type === 'start') {
year = year - 60;
} else if (type === 'end') {
year = year + 2;
}
month = month > 9 ? month : '0' + month;
day = day > 9 ? day : '0' + day;
return `${year}-${month}-${day}`;
},
bindStartDateChange: function(e) {
this.formData.start_time = e.detail.value
},
bindEndDateChange: function(e) {
this.formData.end_time = e.detail.value
},
happenTimeFun(num) { //时间戳数据处理
let date = new Date(num);
//时间戳为10位需*1000时间戳为13位的话不需乘1000
let y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? ('0' + MM) : MM; //月补0
let d = date.getDate();
d = d < 10 ? ('0' + d) : d; //天补0
let h = date.getHours();
h = h < 10 ? ('0' + h) : h; //小时补0
let m = date.getMinutes();
m = m < 10 ? ('0' + m) : m; //分钟补0
let s = date.getSeconds();
s = s < 10 ? ('0' + s) : s; //秒补0
//         return y + '-' + MM + '-' + d + ' ' + h + ':' + m+ ':' + s;
return y + '-' + MM + '-' + d;
},
createTimeToFn(e) {
that.formData.createTimeTo = e.year + '-' + e.month + '-' + e.day;
},
createTimeFromYesFn(e) {
console.log(e)
var index = e[0]
that.formData.createTimeFrom = that.createTimeFromList[index].id
that.createTimeFromCon = that.createTimeFromList[index].label
},
nextHandle(type) {
if (!this.paramsCheck()) return;
if (this.detail && !this.formData.id) {
uni.showToast({
title: '缺少pkid',
icon: "none"
})
return;
}
this._updatePrintList(this.formData, type);
},
/* 参数验证 */
paramsCheck() {
var typeArr = [];
for (let i = 0; i < that.releaseWeb.length; i++) {
if (that.releaseWeb[i].checked == true) {
typeArr.push(that.releaseWeb[i].id)
}
}
that.formData.typeList = typeArr;
if (!nonNullCheck(this.formData.itemInfo.itemName)) {
uni.showToast({
title: '请输入标题',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.itemInfo.applicationDept)) {
uni.showToast({
title: '请选择申请部门',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.createTimeTo)) {
uni.showToast({
title: '请选择申请日期',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.writer)) {
uni.showToast({
title: '请填写撰稿人',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.mailbox)) {
uni.showToast({
title: '请填写联系邮箱',
icon: "none"
})
return false;
}
if (emailRegular.test(this.formData.mailbox) === false) {
uni.showToast({
title: '联系邮箱格式不对,请重新填写',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.contactNumber)) {
uni.showToast({
title: '请填写联系电话',
icon: "none"
})
return false;
}
if (phoneRegular.test(this.formData.contactNumber) === false) {
uni.showToast({
title: '联系电话格式不对,请重新填写',
icon: "none"
})
return false;
}
if (that.formData.typeList.length == 0) {
uni.showToast({
title: '请选择发布网站',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.createTimeFrom)) {
uni.showToast({
title: '请选择信息有效期',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.releaseColumn)) {
uni.showToast({
title: '请填写发布栏目',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.newsInformation)) {
uni.showToast({
title: '请填写新闻信息',
icon: "none"
})
return false;
}
if (!nonNullCheck(this.formData.reason)) {
uni.showToast({
title: '请填写申请理由',
icon: "none"
})
return false;
}
return true;
},
goBack() {
uni.navigateBack({
delta: 1
})
},
nextHandle(){
uni.navigateTo({
url: '/pages/workSpace/newWork/userList'
})
},
}
}
</script>
<style scoped>
.qingjia-apply {
background-color: #f3fbff;
padding-bottom: 227rpx;
}
/* >>>.uni-status-bar {
height: 0 !important;
} */
>>>.uni-navbar-btn-text text {
font-size: 32rpx !important;
}
.apply-info {
width: 720rpx;
margin: 0 auto;
background-color: #FFFFFF;
border-radius: 10rpx;
padding: 25rpx 32rpx;
box-sizing: border-box;
margin-top: 24rpx;
}
.border-bottom {
border-bottom: 1rpx solid #eeeeee;
}
.star {
color: red;
}
.top-title-text {
padding-left: 24rpx;
position: relative;
font-family: PingFang-SC-Medium;
font-size: 34rpx;
line-height: 72rpx;
color: #383838;
}
.top-title-text::before {
content: "";
width: 6rpx;
height: 29rpx;
background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%);
border-radius: 3rpx;
display: block;
position: absolute;
left: -4rpx;
top: 22rpx;
}
.form-item {
/* display: flex; */
font-family: PingFang-SC-Medium;
font-size: 30rpx;
/* line-height: 97rpx; */
height: 200rpx;
display: flex;
flex-wrap: wrap;
align-items: center;
}
.form-left-text {
color: #212121;
margin-bottom: 33rpx;
}
.form-left {
/* min-width: 160rpx; */
width: 100%;
}
.form-right {
margin-left: 20rpx;
flex: 1;
color: #414141;
}
.form-right input {
/* height: 100%; */
/* height: 60rpx; */
font-size: 30rpx;
}
.form-date>>>.uni-date__x-input {
height: 97rpx;
font-size: 30rpx;
}
.form-date>>>.uni-icons {
display: none;
}
.qingjia-apply>>>uni-input {
/* height: 100%; */
font-size: 30rpx;
}
.apply-reason-text {
width: 653rpx;
height: 179rpx;
background-color: #f6f8fc;
border: solid 1rpx #e5e5e5;
margin-top: 21rpx;
padding: 14rpx 24rpx;
font-size: 26rpx;
box-sizing: border-box;
}
.apply_require {
margin-top: 0rpx !important;
}
.file-list {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
padding-top: 13rpx;
}
.file-wrap {
margin-top: 20rpx;
margin-right: 20rpx;
}
.file-item {
width: 155rpx;
height: 155rpx;
border: solid 1rpx #e5e5e5;
text-align: center;
display: flex;
align-items: center;
position: relative;
}
.file-content {
width: 100%;
}
.file-item .file-icon {
width: 37rpx;
height: 37rpx;
}
.file-item .file-name {
font-family: PingFang-SC-Regular;
font-size: 20rpx;
line-height: 17rpx;
color: #313131;
margin-top: 11rpx;
padding: 10rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.file-item>>>.uni-icons {
width: 26rpx;
height: 26rpx;
position: absolute;
right: -8rpx;
top: -22rpx;
/*
background-color: #d81e06;
border-radius: 50%;
font-size: 20rpx !important;
padding: 5rpx;
*/
box-sizing: border-box;
}
.form-right {
flex: 1;
color: #414141;
}
/*部门*/
uni-data-picker {
width: 100%;
border: none !important;
}
.my-data-picker>>>.input-value-border {
border: none !important;
}
>>>.input-value {
font-size: 30rpx !important;
;
}
.my-data-picker uni-data-picker {
width: 100% !important;
}
.my-data-picker {
width: 100%;
display: flex;
align-items: center;
margin-left: -10rpx;
}
/* 主体 */
>>>.uni-navbar__header,
>>>.uni-status-bar {
background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%), linear-gradient(#e60012, #e60012) !important;
}
hongtouwenjian-top {
box-sizing: border-box;
padding-top: 24rpx;
padding-right: 15rpx;
padding-bottom: 20rpx;
padding-left: 15rpx;
}
.hongtouwenjian-top-c {
background-color: #ffffff;
border-radius: 10rpx;
padding-left: 30rpx;
padding-right: 30rpx;
display: flex;
flex-direction: column;
}
.hongtouwenjian-top-c-title {
display: flex;
align-items: center;
height: 85rpx;
border-bottom: 1px solid #eeeeee;
}
.hongtouwenjian-top-c-title-mark {
width: 6rpx;
height: 29rpx;
background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%), linear-gradient(#f3fbff, #f3fbff);
background-blend-mode: normal, normal;
border-radius: 3rpx;
}
.hongtouwenjian-top-c-title-txt {
font-size: 34rpx;
color: #383838;
}
.hongtouwenjian-top-c-item {
/* display: flex; */
align-items: center;
/* height: 100rpx; */
border-bottom: 1px solid #EEEEEE;
box-sizing: border-box;
padding-left: 3rpx;
padding-right: 12rpx;
width: 100%;
line-height: 97rpx;
}
.hongtouwenjian-top-c-item:last-child {
border-bottom: none;
}
.hongtouwenjian-top-c-item-left {
display: flex;
align-items: center;
width: 164rpx;
}
.hongtouwenjian-top-c-item-left-mark {
font-size: 30rpx;
color: #f00808;
}
.hongtouwenjian-top-c-item-left-txt {
font-size: 30rpx;
color: #212121;
}
.hongtouwenjian-top-c-item-middle {
margin-left: 20rpx;
flex: 1;
display: flex;
align-items: center;
height: 100%;
}
.hongtouwenjian-top-c-item-middle-txt {
font-size: 30rpx;
color: #414141;
}
.hongtouwenjian-top-c-item-middle-input {
padding: 0;
margin: 0;
outline: none;
border: none;
background-color: transparent;
width: 100%;
/* height: 100%; */
height: 60rpx;
font-size: 30rpx;
color: #414141;
display: flex;
align-items: center;
}
.hongtouwenjian-top-c-item-right {
width: 22rpx;
height: 25rpx;
}
.hongtouwenjian-addbtn {
display: flex;
justify-content: flex-end;
box-sizing: border-box;
padding-right: 19rpx;
}
.hongtouwenjian-addbtn-w {
padding: 0;
margin: 0;
outline: none;
background-color: transparent;
width: 90rpx;
height: 46rpx;
line-height: 46rpx;
text-align: center;
background-color: #0075ff;
border-radius: 10rpx;
font-size: 26rpx;
color: #f3fbff;
}
/* 物品列表 */
.fixed-assets-listBig {
width: 100%;
padding: 0 20rpx;
box-sizing: border-box;
margin-bottom: 20rpx;
}
.fixed-assets-list {
width: 100%;
background-color: #FFFFFF;
padding: 0 20rpx;
box-sizing: border-box;
}
.fixed-assets-list .apply-info {
padding-top: 0rpx;
}
.fixed-assets-list .top {
height: 108rpx;
line-height: 108rpx;
border-bottom: 1rpx solid #eeeeee;
display: flex;
justify-content: space-between;
align-items: center;
}
.fixed-assets-list .top-left-text {
flex: 1;
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
font-size: 30rpx;
color: #212121;
}
.fixed-assets-list .top-right image {
width: 26rpx;
height: 28rpx;
vertical-align: middle;
}
.fixed-assets-list .top-right view {
height: auto;
padding-left: 10rpx;
font-size: 26rpx;
color: #8b8b8b;
}
/* .fixed-assets-list .bottomBig{
width: 100%;
} */
.fixed-assets-list .bottom {
/* display: flex;
justify-content: space-between;
align-items: center; */
padding-top: 25rpx;
font-size: 28rpx;
color: #616161;
line-height: 72rpx;
}
.fixed-assets-list .bottom-left+.bottom-right {
width: 50%;
}
/* 文件上传进度样式*/
.u-progress-content {
display: flex;
align-items: center;
justify-content: center;
}
.u-progress-dot {
width: 10rpx;
height: 10rpx;
border-radius: 50%;
background-color: #fb9126;
}
.u-progress-info {
font-size: 24rpx;
padding-left: 10rpx;
letter-spacing: 2rpx
}
.is-hidden {
visibility: hidden;
}
.title {
font-size: 14px;
font-weight: bold;
margin: 20px 0 5px 0;
}
.data-pickerview {
height: 400px;
border: 1px #e5e5e5 solid;
}
.popper__arrow {
top: -6px;
left: 50%;
margin-right: 3px;
border-top-width: 0;
border-bottom-color: #EBEEF5;
}
.popper__arrow {
top: -6px;
left: 50%;
margin-right: 3px;
border-top-width: 0;
border-bottom-color: #EBEEF5;
}
</style>