|
@@ -4,11 +4,11 @@
|
|
<van-cell-group style="margin: none" inset>
|
|
<van-cell-group style="margin: none" inset>
|
|
<div class="myTitle required"><span class="number">01</span>{{ t('feedback.title1') }}</div>
|
|
<div class="myTitle required"><span class="number">01</span>{{ t('feedback.title1') }}</div>
|
|
<van-field
|
|
<van-field
|
|
|
|
+ class="zdycell"
|
|
v-model="formData.problemDesc"
|
|
v-model="formData.problemDesc"
|
|
label-align="top"
|
|
label-align="top"
|
|
name="故障描述"
|
|
name="故障描述"
|
|
label=""
|
|
label=""
|
|
- :before-upload="beforeUpload"
|
|
|
|
rows="2"
|
|
rows="2"
|
|
autoSize
|
|
autoSize
|
|
:max-count="5"
|
|
:max-count="5"
|
|
@@ -18,13 +18,15 @@
|
|
:rules="[{ required: true, message: t('feedback.settext') + t('feedback.title1') }]"
|
|
:rules="[{ required: true, message: t('feedback.settext') + t('feedback.title1') }]"
|
|
:placeholder="t('feedback.settext')"
|
|
:placeholder="t('feedback.settext')"
|
|
/>
|
|
/>
|
|
- <van-field name="uploader" label-align="top">
|
|
|
|
|
|
+ <van-field class="uploadercell" name="uploader" label-align="top">
|
|
<template #input>
|
|
<template #input>
|
|
<div>
|
|
<div>
|
|
<div>
|
|
<div>
|
|
<van-uploader
|
|
<van-uploader
|
|
|
|
+ upload-icon="plus"
|
|
:before-read="beforeRead"
|
|
:before-read="beforeRead"
|
|
:after-read="clzpAfterRead"
|
|
:after-read="clzpAfterRead"
|
|
|
|
+ :before-upload="beforeUpload"
|
|
accept=".jpg,.png,.mp4"
|
|
accept=".jpg,.png,.mp4"
|
|
:max-count="6"
|
|
:max-count="6"
|
|
v-model="formData.problemDescImgs"
|
|
v-model="formData.problemDescImgs"
|
|
@@ -38,6 +40,7 @@
|
|
<van-field
|
|
<van-field
|
|
v-model="formData.solution"
|
|
v-model="formData.solution"
|
|
label-align="top"
|
|
label-align="top"
|
|
|
|
+ class="zdycell"
|
|
name="故障描述"
|
|
name="故障描述"
|
|
label=""
|
|
label=""
|
|
rows="2"
|
|
rows="2"
|
|
@@ -48,11 +51,18 @@
|
|
:rules="[{ required: true, message: t('feedback.settext') + t('feedback.title2') }]"
|
|
:rules="[{ required: true, message: t('feedback.settext') + t('feedback.title2') }]"
|
|
:placeholder="t('feedback.settext')"
|
|
:placeholder="t('feedback.settext')"
|
|
/>
|
|
/>
|
|
- <van-field name="uploader" label-align="top">
|
|
|
|
|
|
+ <van-field class="uploadercell" name="uploader" label-align="top">
|
|
<template #input>
|
|
<template #input>
|
|
<div>
|
|
<div>
|
|
<div>
|
|
<div>
|
|
- <van-uploader :before-read="beforeRead" :after-read="clzpAfterRead" :max-count="6" v-model="formData.solutionImgs" />
|
|
|
|
|
|
+ <van-uploader
|
|
|
|
+ upload-icon="plus"
|
|
|
|
+ class="uploadercell"
|
|
|
|
+ :before-read="beforeRead"
|
|
|
|
+ :after-read="clzpAfterRead"
|
|
|
|
+ :max-count="6"
|
|
|
|
+ v-model="formData.solutionImgs"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
<div class="tips">{{ t('feedback.fileTips') }}</div>
|
|
<div class="tips">{{ t('feedback.fileTips') }}</div>
|
|
</div>
|
|
</div>
|
|
@@ -61,6 +71,7 @@
|
|
<div class="myTitle required"><span class="number">03</span>{{ t('feedback.title3') }}</div>
|
|
<div class="myTitle required"><span class="number">03</span>{{ t('feedback.title3') }}</div>
|
|
<van-field
|
|
<van-field
|
|
v-model="setObjId.industryOptionId"
|
|
v-model="setObjId.industryOptionId"
|
|
|
|
+ class="zdycell"
|
|
is-link
|
|
is-link
|
|
readonly
|
|
readonly
|
|
name="picker"
|
|
name="picker"
|
|
@@ -78,6 +89,7 @@
|
|
</van-popup>
|
|
</van-popup>
|
|
<div class="myTitle required"><span class="number">04</span>{{ t('feedback.title4') }}</div>
|
|
<div class="myTitle required"><span class="number">04</span>{{ t('feedback.title4') }}</div>
|
|
<van-field
|
|
<van-field
|
|
|
|
+ class="zdycell"
|
|
v-model="setObjId.hardwareOptionId"
|
|
v-model="setObjId.hardwareOptionId"
|
|
is-link
|
|
is-link
|
|
readonly
|
|
readonly
|
|
@@ -96,6 +108,7 @@
|
|
</van-popup>
|
|
</van-popup>
|
|
<div class="myTitle required"><span class="number">05</span>{{ t('feedback.title5') }}</div>
|
|
<div class="myTitle required"><span class="number">05</span>{{ t('feedback.title5') }}</div>
|
|
<van-field
|
|
<van-field
|
|
|
|
+ class="zdycell"
|
|
v-model="setObjId.softwareOptionId"
|
|
v-model="setObjId.softwareOptionId"
|
|
is-link
|
|
is-link
|
|
readonly
|
|
readonly
|
|
@@ -115,6 +128,7 @@
|
|
</van-popup>
|
|
</van-popup>
|
|
<div class="myTitle"><span class="number">06</span>{{ t('feedback.title6') }}</div>
|
|
<div class="myTitle"><span class="number">06</span>{{ t('feedback.title6') }}</div>
|
|
<van-field
|
|
<van-field
|
|
|
|
+ class="zdycell"
|
|
v-model="formData.nickName"
|
|
v-model="formData.nickName"
|
|
label-align="top"
|
|
label-align="top"
|
|
name="联系电话"
|
|
name="联系电话"
|
|
@@ -124,6 +138,7 @@
|
|
/>
|
|
/>
|
|
<div class="myTitle"><span class="number">07</span>{{ t('feedback.title61') }}</div>
|
|
<div class="myTitle"><span class="number">07</span>{{ t('feedback.title61') }}</div>
|
|
<van-field
|
|
<van-field
|
|
|
|
+ class="zdycell"
|
|
v-model="formData.phone"
|
|
v-model="formData.phone"
|
|
label-align="top"
|
|
label-align="top"
|
|
name="联系电话"
|
|
name="联系电话"
|
|
@@ -135,6 +150,7 @@
|
|
<van-field
|
|
<van-field
|
|
v-model="formData.country"
|
|
v-model="formData.country"
|
|
is-link
|
|
is-link
|
|
|
|
+ class="zdycell"
|
|
readonly
|
|
readonly
|
|
name="picker"
|
|
name="picker"
|
|
label=""
|
|
label=""
|
|
@@ -151,6 +167,7 @@
|
|
<van-field
|
|
<van-field
|
|
v-if="formData.country == '中国'"
|
|
v-if="formData.country == '中国'"
|
|
v-model="formData.city"
|
|
v-model="formData.city"
|
|
|
|
+ class="zdycell"
|
|
is-link
|
|
is-link
|
|
readonly
|
|
readonly
|
|
name="area"
|
|
name="area"
|
|
@@ -173,7 +190,7 @@
|
|
>
|
|
>
|
|
<van-field name="rate" label="">
|
|
<van-field name="rate" label="">
|
|
<template #input>
|
|
<template #input>
|
|
- <van-rate color="#FADB14" void-color="#D9D9D9" :allow-half="true" v-model="formData.score" />
|
|
|
|
|
|
+ <van-rate size="30" color="#FADB14" void-color="#D9D9D9" :allow-half="true" v-model="formData.score" />
|
|
</template>
|
|
</template>
|
|
</van-field>
|
|
</van-field>
|
|
<div class="myTitle"
|
|
<div class="myTitle"
|
|
@@ -182,13 +199,14 @@
|
|
>
|
|
>
|
|
<van-field
|
|
<van-field
|
|
v-model="formData.scoreReason"
|
|
v-model="formData.scoreReason"
|
|
|
|
+ class="zdycell"
|
|
label-align="top"
|
|
label-align="top"
|
|
name="联系电话"
|
|
name="联系电话"
|
|
maxlength="30"
|
|
maxlength="30"
|
|
label=""
|
|
label=""
|
|
:placeholder="t('feedback.settext')"
|
|
:placeholder="t('feedback.settext')"
|
|
/>
|
|
/>
|
|
- <div style="margin: 16px; background-color: #f5f5f5">
|
|
|
|
|
|
+ <div style="margin: 54px 0 16px 0; background-color: #f5f5f5">
|
|
<van-button style="height: 44px" block color="#00B3EC" type="primary" native-type="submit"> 提交 </van-button>
|
|
<van-button style="height: 44px" block color="#00B3EC" type="primary" native-type="submit"> 提交 </van-button>
|
|
</div>
|
|
</div>
|
|
</van-cell-group>
|
|
</van-cell-group>
|
|
@@ -274,6 +292,21 @@
|
|
return isJpgOrPng && isLt2M;
|
|
return isJpgOrPng && isLt2M;
|
|
}; //校验图片的格式
|
|
}; //校验图片的格式
|
|
function beforeRead(file) {
|
|
function beforeRead(file) {
|
|
|
|
+ const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'video/mp4';
|
|
|
|
+ if (!isJpgOrPng) {
|
|
|
|
+ message.error(t('feedback.fileTips'));
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ const isLt2M = file.size / 1024 / 1024 < 2;
|
|
|
|
+ const isLt50M = file.size / 1024 / 1024 < 50;
|
|
|
|
+ if (!isLt2M && (file.type === 'image/jpeg' || file.type === 'image/png')) {
|
|
|
|
+ message.error(t('feedback.fileTips'));
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ if (!isLt50M && file.type === 'video/mp4') {
|
|
|
|
+ message.error(t('feedback.fileTips'));
|
|
|
|
+ return Upload.LIST_IGNORE;
|
|
|
|
+ }
|
|
if (!/(jpg|jpeg|png|JPG|PNG|mp4)/i.test(file.type)) {
|
|
if (!/(jpg|jpeg|png|JPG|PNG|mp4)/i.test(file.type)) {
|
|
showToast(t('feedback.upload'));
|
|
showToast(t('feedback.upload'));
|
|
return false;
|
|
return false;
|
|
@@ -340,8 +373,8 @@
|
|
}
|
|
}
|
|
.myTitle {
|
|
.myTitle {
|
|
position: relative;
|
|
position: relative;
|
|
- margin-top: 14px;
|
|
|
|
- padding: 0 var(--van-cell-horizontal-padding);
|
|
|
|
|
|
+ margin: 32px 0 15px 0;
|
|
|
|
+ // padding: 0 var(--van-cell-horizontal-padding);
|
|
.number {
|
|
.number {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
font-family: Microsoft YaHei, Microsoft YaHei;
|
|
font-family: Microsoft YaHei, Microsoft YaHei;
|
|
@@ -357,5 +390,23 @@
|
|
margin-right: 7px;
|
|
margin-right: 7px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ ::v-deep .van-cell:after {
|
|
|
|
+ display: none;
|
|
|
|
+ }
|
|
|
|
+ ::v-deep .van-cell {
|
|
|
|
+ padding: 4px 16px;
|
|
|
|
+ }
|
|
|
|
+ ::v-deep .van-uploader__upload{
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ border: 1px solid #e4e4e5;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ }
|
|
|
|
+ .zdycell {
|
|
|
|
+ border: 1px solid #e4e4e5;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ }
|
|
|
|
+ .uploadercell{
|
|
|
|
+ padding: 40px 0 0 0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|