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.

327 lines
7.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<uni-forms :model="form" ref="uForm" :rules="rules" label-width="130">
<uni-forms-item label="申请年份" name="year">
<u-input v-model="form.year" placeholder="请输入年份" type="number" />
</uni-forms-item>
<uni-forms-item label="所在地区" name="city">
<u-input v-model="form.city" type="select" @click="showCity=true" />
</uni-forms-item>
<uni-forms-item label="详细地址" name="address">
<u-input v-model="form.address" />
</uni-forms-item>
<uni-forms-item label="企业类型" name="enterprise_type">
<u-input v-model="form.enterprise_type" type="select" @click="show=true" />
</uni-forms-item>
<uni-forms-item label="申请等级" name="applicate_level">
<u-input v-model="form.applicate_level" type="select" @click="look=true" />
</uni-forms-item>
<uni-forms-item label="附件信息">
<u-upload :action="action+'/common/uploadMinioonfile'" :header="actionHeader" @on-success="fileSuccess"
@on-remove="fileRemove" width="150rpx" height="150rpx" max-count="3"></u-upload>
</uni-forms-item>
</uni-forms>
<fixedButton title="提交" @click="toBack()"></fixedButton>
<u-select v-model="show" mode="mutil-column-auto" :list="option" @confirm="getOp">
</u-select>
<u-select v-model="look" mode="mutil-column-auto" :list="list" @confirm="getList"></u-select>
<u-select v-model="showCity" :list="cityList" label-name="dictLabel" value-name="dictLabel"
@confirm="ckickConfirm"></u-select>
</view>
</template>
<script>
import {
getToken
} from '@/utils/auth'
import {
pickFile
} from "@/utils/pickFile";
import fixedButton from "@/components/fixedButton/fixedButton.vue";
import {
uploadFile
} from '@/api/system/user.js'
import {
addEnterprise
} from "@/api/shianliaoning/enterprise.js"
export default {
components: {
fixedButton
},
data() {
return {
actionHeader: {
'Authentication': getToken()
},
action: getApp().globalData.config.baseUrl,
show: false,
look: false,
showCity: false,
cityList: [],
list: [{
value: '0',
label: '诚信店A级'
},
{
value: '1',
label: '诚信店B级'
},
{
value: '2',
label: '诚信店C级'
},
{
value: '3',
label: '争创诚信店'
}
],
option: [{
value: '0',
label: '保健食品经营'
},
{
value: '1',
label: '婴配食品经营'
},
{
value: '2',
label: '特医食品经营'
},
{
value: '3',
label: '保健食品生产'
},
{
value: '4',
label: '婴配食品生产'
}
],
form: {
year: '',
//企业名字
enterpriseName: '',
//信用代码
code: '',
city: '',
address: '',
enterprise_type: '',
applicate_level: '',
//附件
files: '',
//原文件名称
files_originalfilename: ''
},
rules: {
// 必填规则
year: {
rules: [{
required: true,
errorMessage: '请输入申请年份',
// blur和change事件触发检验
trigger: ['blur'],
},
{
pattern: '^[1-3]([0-9]{3})$',
errorMessage: '请输入正确的年份',
}
],
},
city: {
rules: [{
required: true,
errorMessage: '请选择地区',
// blur和change事件触发检验
trigger: ['blur'],
}, ],
},
address: {
rules: [{
required: true,
errorMessage: '请输入地址',
// blur和change事件触发检验
trigger: ['blur'],
}, ],
},
enterprise_type: {
rules: [{
required: true,
errorMessage: '请选择企业类型',
// blur和change事件触发检验
trigger: ['blur'],
}, ],
},
applicate_level: {
rules: [{
required: true,
errorMessage: '请选择申请等级',
// blur和change事件触发检验
trigger: ['blur'],
}, ],
},
},
//上传文件的一些变量
fileList: [],
}
},
onLoad() {
this.getDicts("city_name").then((response) => {
this.cityList = response.data;
});
this.form.code = uni.getStorageSync('USER_DATA').userDto.code
this.form.enterpriseName = uni.getStorageSync('USER_DATA').userDto.enterpriseName
},
onReady() {
// 需要在onReady中设置规则
this.$refs.uForm.setRules(this.rules)
},
methods: {
ckickConfirm(e) {
this.form.city = e[0].label
},
getOp(e) {
this.form.enterprise_type = e[0].label
},
getList(e) {
this.form.applicate_level = e[0].label
},
// ============上传文件=============
// 删除
closeFile(index) {
this.fileList.splice(index, 1)
uni.showToast({
title: '删除成功'
})
},
// 选择
getFilesSys: function() {
let _this = this;
// 上传文件
// pickFile.PickFile((path) => {
// let fileLocalPath = "file:///" + path;
// _this.fileUpload(fileLocalPath)
// })
// return
// // #ifdef APP-PLUS
// pickFile.PickFile((path) => {
// let fileLocalPath = "file:///" + path;
// _this.fileUpload(fileLocalPath)
// })
// // #endif
// #ifdef H5
this.$refs.files.choose()
// #endif
},
// 选择完毕
selectOut(e) {
// if (e.tempFiles[0].extname != "pdf") {
// uni.showToast({
// title: '请上传pdf文件!',
// icon: 'none'
// })
// return
// }
let file = e.tempFiles[0].path
this.fileUpload(file)
},
//上传
fileUpload(e) {
console.log(e)
let data = {
filePath: e
}
uni.showLoading({
title: '上传中'
})
uploadFile(data).then(res => {
uni.showToast({
title: '上传成功'
})
this.fileList.push({
name: res.originalFilename,
url: this.deletelDNS(res.url)
})
})
},
// 图片上传成功
fileSuccess(data, index, lists, name) {
this.fileList.push({
name: data.originalFilename,
url: this.deletelDNS(data.url)
})
},
//删除图片
fileRemove(index, lists, name) {
this.fileList.splice(index, 1)
},
// ============!提交 =============
toBack() {
this.$refs.uForm.validate().then((res) => {
if (this.fileList.length > 0) {
this.form.files = [];
this.form.files_originalfilename = [];
this.fileList.forEach((item) => {
this.form.files.push(item.url);
this.form.files_originalfilename.push(item.name);
});
this.form.files = this.form.files.toString();
this.form.files_originalfilename =
this.form.files_originalfilename.toString();
}
addEnterprise(this.form).then((msg) => {
console.log(msg);
uni.showToast({
title: '提交成功',
//将值设置为 success 或者直接不用写icon这个参数
icon: 'success',
//显示持续时间为 2秒
duration: 1000
})
setTimeout(() => {
uni.switchTab({
url: '/pages/company-home/index'
});
}, 1500)
})
})
}
}
}
</script>
<style lang="scss" scoped>
.content {
padding: 40rpx;
background-color: white;
}
::v-deep .button-conatiner {
z-index: 10;
}
.file-upload {
margin-top: 20rpx;
}
.file-item {
margin-top: 20rpx;
box-sizing: border-box;
border: 1px solid #f7f7f7;
padding: 20rpx 10rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 10rpx;
.file-name {
font-size: 28rpx;
letter-spacing: 2rpx;
}
}
</style>