Explorar o código

Merge branch 'hurx'

hurx hai 1 mes
pai
achega
fa7e6bb72e

+ 42 - 8
src/views/enterprise/companyInfo/edit.vue

@@ -115,10 +115,10 @@
               <el-form-item label="营业执照" prop="businessLicense">
                 <el-upload
                   class="upload-box"
-                  action="#"
-                  :auto-upload="false"
+                  :action="action"
                   :show-file-list="false"
-                  :on-change="(file: any) => handleUpload(file, 'businessLicense')"
+                  :on-success="handleBusinessLicenseSuccess"
+                  :before-upload="beforeAvatarUpload"
                 >
                   <div v-if="form.businessLicense" class="upload-preview">
                     <el-image :src="form.businessLicense" fit="cover" />
@@ -134,10 +134,10 @@
               <el-form-item label="法人身份证" prop="legalPersonCardUrl">
                 <el-upload
                   class="upload-box"
-                  action="#"
-                  :auto-upload="false"
+                  :action="action"
                   :show-file-list="false"
-                  :on-change="(file: any) => handleUpload(file, 'legalPersonCardUrl')"
+                  :on-success="handleLegalPersonCardUrlSuccess"
+                  :before-upload="beforeAvatarUpload"
                 >
                   <div v-if="form.legalPersonCardUrl" class="upload-preview">
                     <el-image :src="form.legalPersonCardUrl" fit="cover" />
@@ -168,9 +168,9 @@ import { useRouter } from 'vue-router';
 import { ArrowLeft, Plus } from '@element-plus/icons-vue';
 import { ElMessage } from 'element-plus';
 import { getEnterpriseInfo, updateEnterpriseInfo, getIndustryCategoryList, getEnterpriseScaleList } from '@/api/pc/enterprise';
-
+const action = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
 import { regionData } from 'element-china-area-data';
-
+import type { UploadProps } from 'element-plus';
 const router = useRouter();
 const formRef = ref();
 
@@ -236,6 +236,40 @@ const loadScaleList = async () => {
   }
 };
 
+//上传成功
+const handleBusinessLicenseSuccess = (res: any) => {
+  if (res.code == 200) {
+    form.businessLicense = res.data.url;
+  } else {
+    ElMessage({
+      message: res.msg,
+      type: 'warning'
+    });
+  }
+  console.log(res);
+};
+
+//上传成功
+const handleLegalPersonCardUrlSuccess = (res: any) => {
+  if (res.code == 200) {
+    form.legalPersonCardUrl = res.data.url;
+  } else {
+    ElMessage({
+      message: res.msg,
+      type: 'warning'
+    });
+  }
+  console.log(res);
+};
+
+const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
+  if (rawFile.size / 1024 / 1024 > 2) {
+    ElMessage.error('不能大于2MB!');
+    return false;
+  }
+  return true;
+};
+
 // 加载企业信息
 const loadEnterpriseInfo = async () => {
   try {

+ 75 - 4
src/views/order/orderEvaluation/index.vue

@@ -132,8 +132,20 @@
           <el-input v-model="evaluateForm.content" type="textarea" :rows="4" placeholder="请输入评价内容" maxlength="200" show-word-limit />
         </el-form-item>
         <el-form-item label="上传图片">
-          <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="5">
-            <el-icon><Plus /></el-icon>
+          <el-upload
+            class="upload-box"
+            :action="action"
+            :show-file-list="false"
+            :on-success="handleEvaluateUrlSuccess"
+            :before-upload="beforeAvatarUpload"
+          >
+            <div v-if="evaluateForm.evaluateUrl" class="upload-preview">
+              <el-image :src="evaluateForm.evaluateUrl" fit="cover" />
+            </div>
+            <div v-else class="upload-placeholder">
+              <el-icon :size="24"><Plus /></el-icon>
+              <span>上传</span>
+            </div>
           </el-upload>
         </el-form-item>
       </el-form>
@@ -155,9 +167,10 @@ import { getOrderList, getOrderProducts, getEvalutionList, addOrderEvaluation, g
 import type { OrderMain, OrderStatusStats } from '@/api/pc/enterprise/orderTypes';
 import { getDeptTree } from '@/api/pc/organization';
 import { DeptInfo } from '@/api/pc/organization/types';
+const action = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { order_status, pay_method } = toRefs<any>(proxy?.useDict('order_status', 'pay_method'));
-
+import type { UploadProps } from 'element-plus';
 const router = useRouter();
 const activeMainTab = ref('0');
 const evaluateDialogVisible = ref(false);
@@ -175,7 +188,7 @@ const mainTabs = [
 ];
 
 const queryParams = reactive({ keyword: '', dateRange: null, department: '', status: '', payType: '', evaluationStatus: '' });
-const evaluateForm = reactive({ deliverGoods: 5, content: '', evaluationType: null });
+const evaluateForm = reactive({ deliverGoods: 5, content: '', evaluationType: null, evaluateUrl: '' });
 const evaluateRules = {
   deliverGoods: [{ required: true, message: '请选择评分', trigger: 'change' }],
   content: [{ required: true, message: '请输入评价内容', trigger: 'blur' }]
@@ -292,6 +305,27 @@ const getorders = async () => {
   }
 };
 
+//上传成功
+const handleEvaluateUrlSuccess = (res: any) => {
+  if (res.code == 200) {
+    evaluateForm.evaluateUrl = res.data.url;
+  } else {
+    ElMessage({
+      message: res.msg,
+      type: 'warning'
+    });
+  }
+  console.log(res);
+};
+
+const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
+  if (rawFile.size / 1024 / 1024 > 2) {
+    ElMessage.error('不能大于2MB!');
+    return false;
+  }
+  return true;
+};
+
 // 监听标签页切换,重新获取数据
 watch(activeMainTab, () => {
   getorders();
@@ -582,6 +616,43 @@ onMounted(() => {
     }
   }
 }
+.upload-box {
+  :deep(.el-upload) {
+    width: 100px;
+    height: 100px;
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    overflow: hidden;
+
+    &:hover {
+      border-color: #e60012;
+    }
+  }
+
+  .upload-placeholder {
+    width: 100%;
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    color: #999;
+    font-size: 12px;
+    gap: 5px;
+  }
+
+  .upload-preview {
+    width: 100%;
+    height: 100%;
+
+    .el-image {
+      width: 100%;
+      height: 100%;
+    }
+  }
+}
+
 .evaluate-product {
   display: flex;
   align-items: center;

+ 3 - 1
src/views/order/orderManage/applyAfter.vue

@@ -115,7 +115,7 @@
               <el-input v-model="form.problemDescription" type="textarea" :rows="5" placeholder="请输入问题描述" />
             </el-form-item>
             <el-form-item label="凭证图片">
-              <el-upload v-model:file-list="form.voucherPhotoArray" list-type="picture-card" action="#" :auto-upload="false" :limit="5">
+              <el-upload v-model:file-list="form.voucherPhotoArray" list-type="picture-card" :action="action" :auto-upload="false" :limit="5">
                 <el-icon><Plus /></el-icon>
               </el-upload>
             </el-form-item>
@@ -208,6 +208,8 @@ import { getOrderInfo, getOrderProductsWithAvailableQty, getReturnReason } from
 import { getEnterpriseInfo, getAddressList } from '@/api/pc/enterprise';
 import { getOrderReturnInfo, addOrderReturn } from '@/api/pc/enterprise/orderReturn';
 import type { OrderReturn } from '@/api/pc/enterprise/orderReturnTypes';
+const action = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
+import type { UploadProps } from 'element-plus';
 const topBtnFlag = ref(true);
 const router = useRouter();
 const route = useRoute();

+ 32 - 5
src/views/valueAdded/complaint/index.vue

@@ -24,12 +24,16 @@
 
       <!-- 上传照片 -->
       <el-form-item label="上传照片">
-        <el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="5" @change="handleUploadChange">
-          <el-icon><Plus /></el-icon>
-          <template #tip>
-            <div class="upload-tip">上传</div>
-          </template>
+        <el-upload
+          class="avatar-uploader"
+          :action="action"
+          :show-file-list="false"
+          :on-success="handleAvatarSuccess"
+          :before-upload="beforeAvatarUpload"
+        >
+          <el-icon class="avatar-uploader-icon"><Plus /></el-icon>
         </el-upload>
+        <img class="upload-img" v-if="form.relatedPictures" :src="form.relatedPictures" />
       </el-form-item>
 
       <!-- 联系方式 -->
@@ -53,6 +57,8 @@ import { PageTitle } from '@/components';
 import { addComplaintsSuggestions } from '@/api/pc/valueAdded';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { complaints_suggestion_type } = toRefs<any>(proxy?.useDict('complaints_suggestion_type'));
+const action = import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload';
+import type { UploadProps } from 'element-plus';
 
 // 反馈类型选项
 const feedbackTypes = computed(() => complaints_suggestion_type.value || []);
@@ -71,6 +77,27 @@ const rules = {
 
 // 上传图片
 const handleUploadChange = (file, fileList) => {};
+
+//上传成功
+const handleAvatarSuccess = (res: any) => {
+  if (res.code == 200) {
+    form.relatedPictures = res.data.url;
+  } else {
+    ElMessage({
+      message: res.msg,
+      type: 'warning'
+    });
+  }
+  console.log(res);
+};
+
+const beforeAvatarUpload: UploadProps['beforeUpload'] = (rawFile) => {
+  if (rawFile.size / 1024 / 1024 > 2) {
+    ElMessage.error('不能大于2MB!');
+    return false;
+  }
+  return true;
+};
 // 提交
 const handleSubmit = async () => {
   if (!form.feedbackContent) {