You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
6.3 KiB

<template>
<view class="app-container">
<u-navbar leftText="返回" title="新增店铺活动" :autoBack="true" :placeholder="true" />
<view class="form-item">
<view class="form-title">
活动名称
<text></text>
</view>
<view class="item-input view-global">
<u--input placeholder="请输入名称" border="none" :customStyle="{ height: '45rpx' }"
v-model="form.activeName"></u--input>
</view>
</view>
<view class="form-item">
<view class="form-title">
活动时间
<text></text>
</view>
<view class="item-input view-global" style="
display: flex;
align-items: center;
justify-content: space-between;
" @click="isCalendar = true">
<text :style="'color:' + fColor(calendarRang)">{{
calendarRang || "请选择日期"
}}</text>
<u-icon name="arrow-right" color="#D5D5D5"></u-icon>
</view>
</view>
<view class="form-item">
<view class="form-title">
活动描述
<text></text>
</view>
<view class="item-input view-global">
<u--textarea v-model="form.activeContent" placeholder="请输入内容" border="none"></u--textarea>
</view>
</view>
<view class="form-item">
<view class="form-title">
活动地点
<text></text>
</view>
<view class="item-input view-global">
<u--input placeholder="请输入活动地点" border="none" :customStyle="{ height: '45rpx' }"
v-model="form.activePoint"></u--input>
</view>
</view>
<!-- <view class="form-item">
<view class="form-title">
参与条件
<text></text>
</view>
<view class="item-input view-global">
<u--textarea v-model="form.joinRequire" placeholder="请输入内容" border="none"></u--textarea>
</view>
</view> -->
<view class="form-item">
<view class="form-title">
上传附件
<text></text>
</view>
<view class="item-input view-global">
<view class="" @click="openFile" v-show="!fileName">
点击上传
</view>
<view class="view-globalFell" v-show="fileName">
<view class="fileName">
{{fileName}}
</view>
<view class="fileNamedelet" @click="fileName = ''">
删除
</view>
</view>
</view>
</view>
<fixed-buttom title="提交" @click="handleAdd"></fixed-buttom>
<!-- 日历 -->
<u-calendar :show="isCalendar" :mode="mode" @confirm="onCalendar" @close="onCloseCalendar"></u-calendar>
</view>
</template>
<script>
import {
addActivity
} from "../../api/jn/apply";
export default {
data() {
return {
form: {},
fileName: "",
isCalendar: false,
calendarRang: "",
mode: "range",
fileWhiteList: ['txt', 'doc', 'docx', 'xls', 'xlsx', 'pdf', ]
};
},
onLoad() {
this.reset();
},
methods: {
// 表单重置
reset() {
this.form = {
id: null,
activeName: null,
activeStart: null,
activeEnd: null,
activeContent: null,
activePoint: null,
joinRequire: null,
activeState: 1,
createId: null,
createBy: null,
createTime: null,
updateId: null,
updateBy: null,
updateTime: null,
remark: null,
gridId: null,
gridName: null,
partId: null,
partName: null,
};
},
onCloseCalendar() {
this.isCalendar = false;
},
onCalendar(e) {
console.log(e);
this.calendarRang = `${e[0]}——${e[e.length - 1]}`;
this.form.activeStart = e[0];
this.form.activeEnd = e[e.length - 1];
this.isCalendar = false;
},
handleAdd() {
console.log(this.form);
addActivity(this.form).then((response) => {
uni.navigateBack({
delta: 1,
});
});
},
fColor(calendarRang) {
return calendarRang ? "#2e2f31" : "#c0c4cc";
},
//上传2
// 打开文件选择器
openFile() {
uni.chooseFile({
count: 1, //默认100
extension: ['.zip', '.doc', '.xls', '.pdf', 'docx', '.rar', '.7z', '.jpg', '.png', '.jpeg'],
success: (res) => {
console.log(res);
if (res.tempFiles[0].size / 1024 / 1024 > 20) {
this.$refs.uToast.show({
title: '附件大小不能超过20M',
type: 'warning',
})
return;
}
this.resultPath(res.tempFilePaths[0], res.tempFiles[0].name);
}
});
},
// 选取的文件路径获取后回调
resultPath(path, fileName) {
console.log(path)
console.log(fileName)
uni.showLoading({
title: '上传中...',
});
uni.uploadFile({
url: "https://t-jn-bjh-admin-server.jsszkd.com/common/upload",
filePath: path,
header: {
// "Authorization": "xxx",
// 'content-type':'multipart/form-data; boundary=----WebKitFormBoundaryHEdN1AIjcdUkAaXM',
},
formData: {
// 'user': 'test'
},
success: (uploadFileRes) => {
let obj = JSON.parse(uploadFileRes.data);
console.log(obj);
this.fileName = obj.originalFilename
this.form.joinRequire = obj.url
uni.showToast({
title: obj.msg,
icon: 'none',
duration: 1500
})
},
fail: (err) => {
this.$refs.uToast.show({
title: '上传失败',
type: 'error',
});
uni.hideLoading();
}
});
},
},
};
</script>
<style lang="scss" scoped>
.form-item {
.form-title {
position: relative;
font-size: 30rpx;
font-weight: bold;
color: #2e2f31;
margin-bottom: 20rpx;
}
.form-title text {
content: "";
position: absolute;
left: 0;
bottom: 0;
height: 12rpx;
width: 140rpx;
background: url("/static/images/juxing.png");
background-size: cover;
max-width: 300rpx;
z-index: 0;
}
.item-input {
margin-bottom: 30rpx;
border-radius: 16rpx;
background-color: #fff;
box-sizing: border-box;
padding: 25rpx;
}
.view-globalFell {
display: flex;
align-items: center;
.fileName {
max-width: 400rpx;
white-space: nowrap;
/* 不换行 */
overflow: hidden;
/* 溢出部分隐藏 */
text-overflow: ellipsis;
/* 显示省略号 */
margin-right: 30rpx;
}
.fileNamedelet {
width: 100rpx;
color: red;
}
}
}
</style>