123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- <template>
- <view :style="'padding-bottom:' + bottom ">
- <view class='zhanline'></view>
- <uni-forms class='inform' ref="form" :rules="rules" :value="datainfo" >
- <uni-forms-item name="xmmc" style='margin-bottom: 0;'>
- <view class="flexc infolist">
- <view class="f16 fw c34 flex0 pr pl12">单位名称</view>
- <input placeholder="请输入单位名称" disabled="true" v-model="datainfo.deptName" class="f16 c34 flex1 txr"/>
- </view>
- </uni-forms-item>
- <uni-forms-item name="" style='margin-bottom: 0;'>
- <view class="flexc infolist">
- <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>外出日期</view>
- <!-- fields="month" -->
- <picker mode="date" :value="datainfo.outsideTime" :end="currentdate" class="infolist_a" @change='bindDateChangea'>
- <view :class="datainfo.outsideTime?'':'f16 co80'">{{datainfo.outsideTime||"请选择外出日期"}}</view>
- </picker>
- </view>
- </uni-forms-item>
- <!-- <view class="info_tit">招商外出次数/天数</view> -->
- <uni-forms-item name="numberOutings" style='margin-bottom: 0;'>
- <view class="flexc infolist">
- <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>外出天数</view>
- <input placeholder="请输入外出天数" type="number" v-model="datainfo.numberOutings" class="f16 c34 flex1 txr"/>
- </view>
- </uni-forms-item>
- <uni-forms-item name="outgoer" style='margin-bottom: 0;'>
- <view class="flexc infolist">
- <view class="f16 fw c34 flex0 pr pl12"><text class="cir">*</text>外出人员</view>
- <input placeholder="请输入外出人员" v-model="datainfo.outgoer" class="f16 c34 flex1 txr"/>
- </view>
- </uni-forms-item>
- <view class="border"></view>
- <uni-forms-item name="details" style='margin-bottom: 0;'>
- <view class="flexc infolist" style="align-items: flex-start;">
- <view class="f16 fw c34 flex0 pr pl12">情况说明</view>
- <uni-easyinput :inputBorder='false' type="textarea" v-model="datainfo.details" placeholder="请输入具体外出情况" placeholderStyle='text-align: right;font-size:32rpx;color:#808080'></uni-easyinput>
- </view>
- </uni-forms-item>
- <uni-forms-item name="zsyzFjList" style='margin-bottom: 0;'>
- <view class="flexc infolist">
- <view class="f16 fw c34 flex0 pr pl12">附件</view>
- <view class="infolist_a co28" ><lsj-upload
- ref="lsjUpload"
- childId="upload1"
- :width="width"
- :height="height"
- :option="option"
- :size="size"
- :formats="formats"
- :debug="debug"
- :instantly="instantly"
- @progress=""
- @uploadEnd="onuploadEnd" >
- <view class="btn" :style="{width: width,height: height}">选择附件</view>
- </lsj-upload></view>
- </view>
- </uni-forms-item>
- <view class=" cldelistbf" v-for="(ite,idx) in filelist" :key='idx'>
- <view class="flext f15 c6" @click="getDown(ite.path)">
- <view class="imgl"><image :src="wimg" ></image></view>
- <view>{{ite.fjName}}</view>
- </view>
- <!-- 删除 -->
- <view class="delimg flex0" @click.stop="getDelFj(idx)">
- <image :src="delimg"></image>
- </view>
- </view>
- <view class="infolist_b"><text>*</text>请上传大小不超过<text>100MB</text>格式为<text>doc/xls/ppt/txt/pdf/zip/rar/word</text>的文件</view>
- <view class="pfixedb flexc">
- <!-- 修改 -->
- <view v-if="checkPermi(['system:wczs:edit'])&&pagetype=='update'" class="infobtn flexcc cf f16 f500 btn2" @click="getSubmit">提交</view>
- <!-- 新增 -->
- <view v-if="checkPermi(['system:wczs:add'])&&pagetype=='add'" class="infobtn flexcc cf f16 f500 btn2" @click="getSubmit">提交</view>
-
- <view v-if="checkPermi(['system:wczs:remove'])&&pagetype=='update'" class="infobtn flexcc cf f16 f500 btn1" @click="getDelFn">删除</view>
- </view>
-
-
- </uni-forms>
- </view>
- </template>
- <script>
- import { getwczsaddFn,getwczsputFn,getwczsdetailFn,getwczsdelFn} from '@/api/work/count.js'
- import config from '@/config'
- const baseUrl = config.baseUrl
- import { getToken } from '@/utils/auth'
- import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
- export default {
- data() {
- return {
- //附件
- option: {
- // 上传服务器地址,需要替换为你的接口地址
- url: baseUrl+'/common/upload', // 该地址非真实路径,需替换为你项目自己的接口地址
- // 上传附件的key
- name: 'file',
- // 根据你接口需求自定义请求头,默认不要写content-type,让浏览器自适配
- header: {
- // 示例参数可删除
- 'Authorization': 'Bearer ' + getToken(),
- },
- // 根据你接口需求自定义body参数
- formData: {
- }
- },
- // 选择文件后是否立即自动上传,true=选择后立即上传
- instantly: true,
- // 必传宽高且宽高应与slot宽高保持一致
- width: '',
- height: '48rpx',
- // 限制允许上传的格式,空串=不限制,默认为空
- formats: 'doc,docx,xls,ppt,txt,pdf,zip,rar,word',
- // 文件上传大小限制
- size: 100,
- // 文件数量限制 默认10
- count: 5,
- // 文件回显列表
- files: new Map(),
- // 微信小程序Map对象for循环不显示,所以转成普通数组,不要问为什么,我也不知道
- wxFiles: [],
- // 是否打印日志
- debug: false,
- filelist:[],
-
- defaultPhoneHeight: '', //屏幕默认高度
- nowPhoneHeight: '', //屏幕现在的高度
- bottom:0,
- baseUrl:'',
- datainfo:{
- "deptName":"",//单位名称
- "year":"",//年
- "month":"",//月
- "outsideTime":"",//外出时间
- "numberOutings":"",//外出天数
- "outgoer":"",//外出人员
- "details":'',//情况说明
- zsyzFjList:[],//附件地址
- },
- rules: {
- outsideTime: {rules: [{required: true,errorMessage: '请选择外时间'}]},
- numberOutings: {rules: [{required: true,errorMessage: '请输入外出天数'},{pattern:/^[1-9]\d*$/,errorMessage: '请输入整数(天)'}]},
- outgoer: {rules: [{required: true,errorMessage: '请输入外出人员',}]},
- // zsyzFjList: {rules: [{required: true,errorMessage: '请上传附件'} ]},
- },
- wimg:require('@/static/images/index/wicon.png'),
- downimg:require('@/static/images/index/down.png'),
- delimg:require("@/static/images/mine/del.png"),
- pagetype:'add',
- strfrom:'tong',
- currentdate:'',
- }
- },
- onLoad(e) {
- this.baseUrl=baseUrl;
- this.pagetype=e.pagetype||'add';
- this.strfrom=e.strfrom||'tong';
- this.currentdate=this.getNowFormatDate();
- if(this.pagetype=='update'){
- // 获取详情 修改
- this.id=e.id
- this.getDataFn()
- }else{
- this.datainfo.outsideTime=this.getNowFormatDate();
-
- this.datainfo.deptName=this.$store.state.user.deptName;
- }
- // #ifdef APP
- uni.onKeyboardHeightChange(res=> { //监听键盘高度变化
- const res_keyboard = uni.getSystemInfoSync();
- let key_height = res.height - (res_keyboard.screenHeight - res_keyboard.windowHeight)
- // let key_height = res.height - (res_keyboard.screenHeight - res_keyboard.windowHeight + res_keyboard.safeAreaInsets.bottom)
- this.bottom = `${ key_height>0 ? key_height : 0}px`;
- })
- // #endif
- },
- onHide() {
- // #ifdef APP-PLUS
- uni.offKeyboardHeightChange(); // 取消监听键盘高度变化事件,避免内存消耗
- // #endif
- },
- onReady() {
- // this.$refs.form.setRules(this.rules)
- },
- methods: {
- checkPermi, checkRole,
- getNowFormatDate(){
- let date = new Date();
- let y = date.getFullYear();
- let m = date.getMonth() + 1;
- m = m < 10 ? "0" + m : m;
- let d = date.getDate();
- d = d < 10 ? "0" + d : d;
- const timeday = y + "-" + m+ "-" + d;
- this.datainfo.year=y;
- this.datainfo.month=m;
- return timeday;
- },
- // 详情
- getDataFn(){
- getwczsdetailFn(this.id).then(res=>{
- if(res.code==200){
- this.datainfo=res.data;
- if(res.data.zsyzFjList&&res.data.zsyzFjList.length){
- this.filelist=JSON.parse(JSON.stringify(res.data.zsyzFjList))
- }
- }else{
- this.$toast(res.msg)
- }
- })
- },
- bindDateChangea(e){//上报日期
- this.time=e.detail.value;
- var value=e.detail.value;
- var timestr=value.split('-');
- this.datainfo.year=timestr[0];
- this.datainfo.month=timestr[1];
- },
- getSubmit() {
- var that=this;
- this.datainfo.zsyzFjList=JSON.parse(JSON.stringify(this.filelist));
- this.$refs.form.validate().then(res => {
- var params=this.datainfo;
- // params.zsyzFjList=this.filelist
- if(this.pagetype=='add'){
- getwczsaddFn(params).then(res=>{
- if(res.code==200){
- this.$toast('上报信息成功')
- setTimeout(function() {
- if(that.strfrom=='tong'){
- uni.$emit('refreshdatatong');
- if(checkPermi(['system:qktj:list'])){
- that.$tab.redirectTo('/pages/work/count/cluelist')
- }else{
- uni.navigateBack({delta: 1});
- }
- }else{
- uni.$emit('refreshdata');
- uni.navigateBack({delta: 1});
- }
- },1500);
- }else{
- this.$toast(res.msg)
- }
-
- })
- }else{
- getwczsputFn(params).then(res=>{
- if(res.code==200){
- this.$toast('修改信息成功')
- setTimeout(function() {
- uni.$emit('refreshdata');
- uni.navigateBack({delta: 1});
- },1500);
- }else{
- this.$toast(res.msg)
- }
-
- })
- }
-
- })
- },
- getDelFn(){
- var that=this;
- uni.showModal({
- title: '确认删除',
- content: "是否确认删除",
- cancelText: '取消',
- confirmText: '确认',
- success: function(res) {
- if (res.confirm) {
- getwczsdelFn(that.id).then(res=>{
- if(res.code==200){
- that.$toast('删除信息成功')
- setTimeout(function() {
- uni.$emit('refreshdata');
- uni.navigateBack({delta: 1});
- },1500);
- }else{
- that.$toast(res.msg)
- }
- })
-
- } else if (res.cancel) {
- }
- }
- });
- },
- onuploadEnd(item) {
- var newobj={}
- var responseText=JSON.parse(item.responseText)
- newobj.fjName=responseText.originalFilename;
- newobj.path=responseText.fileName;
- this.filelist.push(newobj)
- this.datainfo.zsyzFjList=JSON.parse(JSON.stringify(this.filelist))
- },
- getDelFj(idx){
- var that=this;
- uni.showModal({
- title: '确认删除',
- content: "是否确认删除",
- cancelText: '取消',
- confirmText: '确认',
- success: function(res) {
- if (res.confirm) {
- that.filelist.splice(idx,1)
- that.datainfo.zsyzFjList=JSON.parse(JSON.stringify(that.filelist))
- } else if (res.cancel) {
- }
- }
- });
- },
- getDown(e){
- uni.showLoading({
- title: '加载中'
- });
- var url=baseUrl+e;
- uni.downloadFile({
- url: url,//文件的下载路径
- success(result) {
- uni.hideLoading()
- var filePath = result.tempFilePath;
- uni.openDocument({
- filePath: filePath,
- showMenu: true,
- success: function (res) {
- // console.log('打开文档成功');
- }
- });
- },
- fail(res) {uni.hideLoading()}
- })
- },
- }
- }
- </script>
- <style lang="scss" scoped>
- .inform{padding-top: 30rpx; padding-bottom: 160rpx;}
- .infolist{padding: 30rpx 32rpx 30rpx 24rpx;position: relative;
- .cir{position: absolute;font-size: 36rpx;font-weight: bold;color: #FE5706;left: 0rpx;}
- // .delimg{width: 30rpx;height:30rpx;margin-left: 8rpx;}
- }
- .delimg{width: 40rpx;height:40rpx;margin-left: 16rpx;display: flex;align-items: center;justify-content: center;
- image{width: 30rpx;height: 30rpx;}
- }
- .infobtn{width: 100%;height: 88rpx;background: #FA5F03;line-height: 88rpx;
- &.btn1{background-color: #1FB9F7;flex: 1;}
- &.btn2{background-color:#FF6400;flex: 1;}
- }
- .input_ye image{width: 34rpx;height: 18rpx;}
- .info_tit{font-size: 32rpx;color: #FE5706;padding: 50rpx 26rpx 20rpx;font-weight: bold;}
- .infolist_a{height: 44rpx;flex: 1;text-align: right;font-size: 32rpx;color: #343434;}
- .infolist_add{position: absolute;right: 0;top: -40rpx;font-size: 28rpx;color: #41C942;padding-right: 30rpx;
- image{width: 30rpx;height: 30rpx;margin-right: 20rpx;}
- }
- .fixedbtn{width:100%;height: 80rpx;background: #FF6400;
- border-radius: 10rpx;display: flex;align-items: center;justify-content: center;font-size: 32rpx;font-weight: bold;color: #FFFFFF;
- &.btn1{background-color: #20ACCF;margin-bottom: 36rpx;}
- }
- .fixedbox .infolist{padding: 30rpx 0;}
- .inform /deep/ .uni-forms-item__error{margin-top: -30rpx;margin-left: 24rpx;}
- .fixedbox /deep/ .uni-forms-item__error{margin-top: -30rpx;margin-left: 24rpx;}
- .inform .pl12{margin-right: 10rpx;}
- .fixedbox .pl12{margin-right: 10rpx;}
- .pholist{
- display: flex;align-items: center;max-width: 220rpx;overflow: hidden;
- image{
- width: 44rpx;height: 44rpx;margin-left: 10rpx;flex: 0 0 auto;
- }
- }
- .disabledbox{
- .infolist{background-color: #F5f5f5;}
- }
- </style>
|