This commit is contained in:
许允枞 2025-03-11 14:52:46 +08:00
parent fd1ec60815
commit ecca353d9f

View File

@ -1,476 +1,512 @@
<!-- 发起订单 --> <!-- 发起订单 -->
<template> <template>
<view class="content"> <view class="content">
<!-- <view class="c-top">--> <!-- <view class="c-top">-->
<!-- <view class="" @click="getback()">--> <!-- <view class="" @click="getback()">-->
<!-- <uni-icons type="left" size="18"></uni-icons>--> <!-- <uni-icons type="left" size="18"></uni-icons>-->
<!-- </view>--> <!-- </view>-->
<!-- <view class="c-title">新增文件</view>--> <!-- <view class="c-title">新增文件</view>-->
<!-- <view class=""></view>--> <!-- <view class=""></view>-->
<!-- </view>--> <!-- </view>-->
<headersVue titles="新增文件" style="position: static !important;"> <headersVue titles="新增文件" style="position: static !important;">
<u-icon name="arrow-left" color="#fff" size="18"></u-icon> <u-icon name="arrow-left" color="#fff" size="18"></u-icon>
</headersVue> </headersVue>
<view class="dil"> <view class="dil">
<view class="tinput" v-if="maneizhi=='2'"> <view class="tinput" v-if="maneizhi=='2'">
<view class="text1"> <text class="hong1">*</text> 文件路径</view> <view class="text1">
<view class="you" > <text class="hong1">*</text>
<ss-upload v-if="maneizhi==2" ref="ssUpload" @getFile="getFile" @uploadSuccess="uploadSuccess" :uploadOptions="uploadOptions" :isUploadServer="isUploadServer" :webviewStyle="webviewStyle" :fileInput="fileInput" > 文件路径
<text>附件上传</text> </view>
</ss-upload> <view class="you">
<ss-upload v-if="maneizhi==2" ref="ssUpload" @getFile="getFile" @uploadSuccess="uploadSuccess"
:uploadOptions="uploadOptions" :isUploadServer="isUploadServer" :webviewStyle="webviewStyle"
:fileInput="fileInput">
<text>附件上传</text>
</ss-upload>
</view> </view>
</view> </view>
<view style="padding:24rpx;" v-if="maneizhi=='2'"> <view style="padding:24rpx;" v-if="maneizhi=='2'">
<!-- #ifdef MP-WEIXIN || H5 --> <!-- #ifdef MP-WEIXIN || H5 -->
<view v-if="files.length"> <view v-if="files.length">
<view v-for="item in files"> <view v-for="item in files">
<view>名称{{ item.name }}</view> <view>名称{{ item.name }}</view>
<view>大小{{ item.size }}</view> <view>大小{{ item.size }}</view>
<view>类型{{ item.type }}</view> <view>类型{{ item.type }}</view>
</view> </view>
</view> </view>
<!-- #endif --> <!-- #endif -->
<!-- #ifdef APP-PLUS--> <!-- #ifdef APP-PLUS-->
<view style="margin-top:40rpx">{{filesApp}}</view> <view style="margin-top:40rpx">{{ filesApp }}</view>
<!-- #endif --> <!-- #endif -->
<!-- <view style="margin-top:40rpx;word-break: break-all;" v-if="result"> <!-- <view style="margin-top:40rpx;word-break: break-all;" v-if="result">
上传服务器结果{{result}} 上传服务器结果{{result}}
</view> --> </view> -->
</view> </view>
<view class="xinput" > <view class="xinput">
<view class="text1"> <text class="hong1">*</text> 分类</view> <view class="text1">
<view class="xz"> <text class="hong1">*</text>
<view :class="{'xlan':maneizhi == item.id}" class="kuang" v-for="(item,index) in taplist" :key="index" @click="getzhi2(item.id,item.text)"> 分类
<view class="">{{item.text}}</view> </view>
</view> <view class="xz">
</view> <view :class="{'xlan':maneizhi == item.id}" class="kuang" v-for="(item,index) in taplist" :key="index"
</view> @click="getzhi2(item.id,item.text)">
<view class="">{{ item.text }}</view>
</view>
</view>
</view>
<!-- 填空 --> <!-- 填空 -->
<view class="tinput"> <view class="tinput">
<view class="text1" v-if="maneizhi=='1'"> <text class="hong1">*</text> 文件夹名称</view> <view class="text1" v-if="maneizhi=='1'">
<view class="text1" v-else> <text class="hong1">*</text> 文件名称</view> <text class="hong1">*</text>
<view class="you"> 文件夹名称
<input type="text" placeholder="请输入名称" v-model="box.fileName"> </view>
</view> <view class="text1" v-else>
</view> <text class="hong1">*</text>
文件名称
</view>
<view class="you">
<input type="text" placeholder="请输入名称" v-model="box.fileName">
</view>
</view>
<!-- style="height: 0px; overflow: hidden; display: none;" --> <!-- style="height: 0px; overflow: hidden; display: none;" -->
<view class="tinput" v-if="maneizhi=='2'">
<view class="tinput" v-if="maneizhi=='2'"> <view class="text1">
<view class="text1"> <text class="hong1">*</text> 提醒时间</view> <text class="hong1">*</text>
<view class="you" @click="show = true "> 提醒时间
<text>{{time|| ''}}</text> </view>
</view> <view class="you" @click="show = true ">
</view> <text>{{ time || '' }}</text>
<u-datetime-picker </view>
:show="show" </view>
v-model="value1" <u-datetime-picker
@cancel="cancels" :show="show"
@confirm="confirms" v-model="value1"
mode="date" @cancel="cancels"
return-type='string' @confirm="confirms"
></u-datetime-picker> mode="date"
<view class="anniu" @click="getnewsadd()"> return-type='string'
<text>保存</text> ></u-datetime-picker>
</view> <view class="anniu" @click="getnewsadd()">
<view style="width: 100%; height: 60px;"></view> <text>保存</text>
</view> </view>
<view style="width: 100%; height: 60px;"></view>
</view>
</view> </view>
</template> </template>
<script> <script>
import request from '../../utils/request' import request from '../../utils/request'
import config from '@/config' import config from '@/config'
import { getToken } from '@/utils/auth' import {getToken} from '@/utils/auth'
import upload from '@/utils/upload.js' import upload from '@/utils/upload.js'
import headersVue from "@/components/header/headers.vue"; import headersVue from "@/components/header/headers.vue";
var wvCurrent;
export default{
components: {headersVue},
data(){
return{
time:'请选择提醒时间',
value1:'2023-10-10',
baseUrl:this.$baseUrl,
show:false,
maneizhi:2,
type:'add',
fileId:null,
id:1,
taplist:[ var wvCurrent;
{text:'文件夹',id:1}, export default {
{text:'文件',id:2}, components: {headersVue},
], data() {
box:{ return {
type:2, time: '请选择提醒时间',
fatherId:'', value1: '2023-10-10',
filePath:'', baseUrl: this.$baseUrl,
fileName:'', show: false,
warnTime:'', maneizhi: 2,
}, type: 'add',
fileLists: null, fileId: null,
files: [], id: 1,
filesApp:'',
isUploadServer:true,
uploadOptions:{},
webviewStyle:{
height: '60px',
width:'130px',
position:'',
background:'transparent',
position: 'absolute',
top:'95px',
right:'20px',
},
fileInput:{//apphtmlinput
fileStyle:{
borderRadius: '10px', taplist: [
backgroundColor: '#000000', {text: '文件夹', id: 1},
color: '#fff', {text: '文件', id: 2},
fontSize: '20px', ],
}, box: {
fileTitle:'' type: 2,
}, fatherId: '',
fileInputs:{//apphtmlinput filePath: '',
fileStyle:{ fileName: '',
warnTime: '',
},
fileLists: null,
files: [],
filesApp: '',
isUploadServer: true,
uploadOptions: {},
webviewStyle: {
height: '60px',
width: '130px',
position: '',
background: 'transparent',
position: 'absolute',
top: '95px',
right: '20px',
},
fileInput: {//apphtmlinput
fileStyle: {
borderRadius: '10px', borderRadius: '10px',
backgroundColor: '#000000', backgroundColor: '#000000',
color: '#fff', color: '#fff',
fontSize: '20px', fontSize: '20px',
}, },
fileTitle:'上传附件' fileTitle: ''
}, },
result:'', fileInputs: {//apphtmlinput
uploadWaiting: false, fileStyle: {
} borderRadius: '10px',
}, backgroundColor: '#000000',
onLoad(option) { color: '#fff',
this.type = option.type fontSize: '20px',
this.fileId = option.fileId },
this.uploadOptions = { fileTitle: '上传附件'
// },
url:this.$baseUrl + '/common/upload', //, result: '',
//get,post uploadWaiting: true,
type:'post',
// key
name: 'file',
//
header:{"Authorization": 'Bearer ' + getToken()},
// body
formData: config.formData
}
},
mounted() {
},
onShow() {
if(this.type == 'edit') this.getDetail();
},
methods:{
async getDetail(){
let res = await request({ }
url: '/inspectionFile/inspectionFile/'+this.fileId, },
method: 'get' onLoad(option) {
}) this.type = option.type
if(res.code == 200){ this.fileId = option.fileId
this.box = res.data this.uploadOptions = {
this.maneizhi = this.box.type //
this.time = this.box.warnTime url: this.$baseUrl + '/common/upload', //,
} //get,post
}, type: 'post',
cancels(){ // key
this.show = false name: 'file',
}, //
confirms(e){ header: {"Authorization": 'Bearer ' + getToken()},
var timestamp = e.value; // body
var date = new Date(timestamp); formData: config.formData
var year = date.getFullYear(); }
var month = ("0" + (date.getMonth() + 1)).slice(-2); },
var day = ("0" + date.getDate()).slice(-2); mounted() {
var formattedDate = year + "-" + month + "-" + day; },
this.box.warnTime = formattedDate onShow() {
this.time = formattedDate if (this.type == 'edit') this.getDetail();
this.show = false },
methods: {
async getDetail() {
}, let res = await request({
// url: '/inspectionFile/inspectionFile/' + this.fileId,
async getnewsadd(){ method: 'get'
if(this.maneizhi =='2'){ })
if (this.box.fileName==''||this.box.warnTime==''){ if (res.code == 200) {
uni.showToast({ this.box = res.data
title:'必填项不能有空!', this.maneizhi = this.box.type
icon:'none' this.time = this.box.warnTime
}) }
return },
} cancels() {
if (!this.uploadWaiting){ this.show = false
uni.showToast({ },
title:'请等待上传完成!', confirms(e) {
icon:'none' var timestamp = e.value;
}) var date = new Date(timestamp);
return var year = date.getFullYear();
} var month = ("0" + (date.getMonth() + 1)).slice(-2);
if(this.box.filePath==''){ var day = ("0" + date.getDate()).slice(-2);
uni.showToast({ var formattedDate = year + "-" + month + "-" + day;
title:'必填项不能有空!', this.box.warnTime = formattedDate
icon:'none' this.time = formattedDate
}) this.show = false
return
}
}else{
if(this.box.fileName==''){
uni.showToast({
title:'必填项不能有空!',
icon:'none'
})
return
}
}
this.uploadWaiting = false
if(this.type == 'add'){
this.box.fatherId = this.fileId
let res = await request({
url: '/inspectionFile/inspectionFile/add',
method: 'post',
data:this.box
})
if(res.code == 200){
uni.showToast({
title:'发布成功'
})
setTimeout(() => {
uni.navigateBack();
}, 1000);
}
}
if(this.type == 'edit'){
let res = await request({
url: '/inspectionFile/inspectionFile/edit',
method: 'post',
data:this.box
})
if(res.code == 200){
uni.showToast({
title:'发布成功'
})
setTimeout(() => {
//
uni.navigateBack();
}, 1000);
} },
} //
async getnewsadd() {
if (this.maneizhi == '2') {
if (this.box.fileName == '' || this.box.warnTime == '') {
uni.showToast({
title: '必填项不能有空!',
icon: 'none'
})
return
}
if (!this.uploadWaiting) {
uni.showToast({
title: '请等待上传完成!',
icon: 'none'
})
return
}
if (this.box.filePath == '') {
uni.showToast({
title: '必填项不能有空!',
icon: 'none'
})
return
}
} else {
if (this.box.fileName == '') {
uni.showToast({
title: '必填项不能有空!',
icon: 'none'
})
return
}
}
this.uploadWaiting = false
if (this.type == 'add') {
this.box.fatherId = this.fileId
let res = await request({
url: '/inspectionFile/inspectionFile/add',
method: 'post',
data: this.box
})
if (res.code == 200) {
uni.showToast({
title: '发布成功'
})
setTimeout(() => {
uni.navigateBack();
}, 1000);
}
}
if (this.type == 'edit') {
let res = await request({
url: '/inspectionFile/inspectionFile/edit',
method: 'post',
data: this.box
})
if (res.code == 200) {
uni.showToast({
title: '发布成功'
})
setTimeout(() => {
//
uni.navigateBack();
}, 1000);
}, }
}
getback(){ },
uni.navigateBack({
delta:1,
})
},
getzhi2(id,text){ getback() {
if(this.type == 'add'){ uni.navigateBack({
this.maneizhi = id delta: 1,
this.value =text })
this.box.type = id },
}
}, getzhi2(id, text) {
uploadFile(){ if (this.type == 'add') {
setTimeout(()=>{ this.maneizhi = id
this.$refs.ssUpload.uploadFile() this.value = text
}) this.box.type = id
}, }
//
getFile(result){
//#ifdef H5 || MP-WEIXIN },
this.files = result.tempFiles uploadFile() {
// #endif setTimeout(() => {
// #ifdef APP-PLUS this.$refs.ssUpload.uploadFile()
this.filesApp = result })
// #endif },
}, //
uploadSuccess(result){ getFile(result) {
this.result = result
this.box.filePath = result[0].data.url //#ifdef H5 || MP-WEIXIN
this.files = result.tempFiles
// #endif
// #ifdef APP-PLUS
this.filesApp = result
// #endif
},
uploadSuccess(result) {
this.result = result
this.box.filePath = result[0].data.url
console.log(result) console.log(result)
console.log(this.box.filePath,'图片路径') console.log(this.box.filePath, '图片路径')
this.uploadWaiting = true this.uploadWaiting = true
uni.showToast({ uni.showToast({
title:'上传完成', title: '上传完成',
icon:'none' icon: 'none'
}) })
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.content{ .content {
width: 100%; width: 100%;
height: calc(100vh); height: calc(100vh);
background-color: #F6F6F6; background-color: #F6F6F6;
box-sizing: border-box; box-sizing: border-box;
// padding-top: 45px; // padding-top: 45px;
} }
.dil{ .dil {
box-sizing: border-box; box-sizing: border-box;
background-color: #F6F6F6; background-color: #F6F6F6;
padding: 0px 12px; padding: 0px 12px;
} }
.top-icon{
margin-bottom: 45px;
}
.c-top{
width: 100%;
box-sizing: border-box;
padding: 15px;
display: flex;
justify-content: space-between;
align-items: center;
background-color: white;
padding-top: 40px;
}
.c-title{
font-size: 18px;
font-weight: bold
}
.top{
box-sizing: border-box;
padding: 0px 15px;
width: 100%;
background-color: white;
}
.top-box{
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 20px 0px;
}
.tb-left{
height: 100%;
width: 80%;
display: flex;
align-items: center;
}
.uicon{
width: 18px;
height: 18px;
border-radius: 4px;
color: white;
background: orangered;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-weight: bold;
margin-right: 6px;
} .top-icon {
.tb-right{ margin-bottom: 45px;
width: 20px; }
height: 26px;
image{ .c-top {
width: 100%; width: 100%;
height: 100%; box-sizing: border-box;
} padding: 15px;
} display: flex;
.text1{ justify-content: space-between;
font-size: 16px; align-items: center;
font-weight: bold; background-color: white;
color: #363636; padding-top: 40px;
} }
.hong1{
margin-top: 5px;
font-size: 12px;
font-weight: 400;
color: #FF5453;
}
.hong2{
margin-top: 5px;
font-size: 12px;
font-weight: 400;
} .c-title {
.tinput{ font-size: 18px;
width: 100%; font-weight: bold
display: flex; }
background: white;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 16px;
margin-top: 14px;
margin-bottom: 14px;
}
.xinput{
width: 100%;
background: white;
box-sizing: border-box;
padding: 16px;
margin-top: 14px;
}
.you{
text-align: right;
} .top {
.xz{ box-sizing: border-box;
margin-top: 10px; padding: 0px 15px;
display: flex; width: 100%;
align-items: center; background-color: white;
}
} .top-box {
.kuang{ display: flex;
width: 80px; justify-content: space-between;
height: 23px; align-items: center;
background: #ECECEC; box-sizing: border-box;
border-radius: 5px; padding: 20px 0px;
display: flex; }
justify-content: center;
align-items: center;
color: #666666;
font-size: 14px;
margin-right: 15px;
}
.xlan{
background: #CDE7FF !important;
color: #1D62FF !important;
border: 1px solid #2A96FE;
}
.anniu{
width: 100%;
background: linear-gradient(180deg, #327DFB 0%, #327DFB 100%);
border-radius: 50px ;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
color: #542F0E;
margin-top: 20px;
color: white;
} .tb-left {
height: 100%;
width: 80%;
display: flex;
align-items: center;
}
.uicon {
width: 18px;
height: 18px;
border-radius: 4px;
color: white;
background: orangered;
display: flex;
justify-content: center;
align-items: center;
font-size: 12px;
font-weight: bold;
margin-right: 6px;
}
.tb-right {
width: 20px;
height: 26px;
image {
width: 100%;
height: 100%;
}
}
.text1 {
font-size: 16px;
font-weight: bold;
color: #363636;
}
.hong1 {
margin-top: 5px;
font-size: 12px;
font-weight: 400;
color: #FF5453;
}
.hong2 {
margin-top: 5px;
font-size: 12px;
font-weight: 400;
}
.tinput {
width: 100%;
display: flex;
background: white;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 16px;
margin-top: 14px;
margin-bottom: 14px;
}
.xinput {
width: 100%;
background: white;
box-sizing: border-box;
padding: 16px;
margin-top: 14px;
}
.you {
text-align: right;
}
.xz {
margin-top: 10px;
display: flex;
align-items: center;
}
.kuang {
width: 80px;
height: 23px;
background: #ECECEC;
border-radius: 5px;
display: flex;
justify-content: center;
align-items: center;
color: #666666;
font-size: 14px;
margin-right: 15px;
}
.xlan {
background: #CDE7FF !important;
color: #1D62FF !important;
border: 1px solid #2A96FE;
}
.anniu {
width: 100%;
background: linear-gradient(180deg, #327DFB 0%, #327DFB 100%);
border-radius: 50px;
height: 40px;
display: flex;
justify-content: center;
align-items: center;
color: #542F0E;
margin-top: 20px;
color: white;
}
button::after { button::after {
border: none; border: none;
} }
</style> </style>