zhangwei
2024-09-09 87bad1af0c203865d318befd9bf3af199896931e
src/pages/enterprise/enterprise.vue
@@ -1,47 +1,48 @@
<template>
   <view class="full-page">
   <view class="full-page-fff">
      <view class="content">
         <up-form labelPosition="left" :model="enterpriseInfo" :rules="rules" ref="form1" labelWidth='90'>
            <up-form-item label="公司营业执照" prop="enterpriseInfo.businessLicense" required borderBottom ref="item1">
               <fui-upload immediate :url="`${apiBaseUrl}api/UpFile/UpBizLicense`" ref="uploadB" max='1'
         <up-form labelPosition="left" :model="enterpriseInfo" :rules="rules" ref="formRef" labelWidth='90'>
            <up-form-item label="营业执照" prop="businessLicense" required ref="item1">
               <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UpBizLicense`" ref="uploadB" max='1'
                  background='#fff' @success="success" @error="error" @complete="complete" width="300"
                  height="150">
                  :sizeType='sizeType' height="150">
                  <image
                     :src="enterpriseInfo.businessLicense?enterpriseInfo.businessLicense:'/static/enterprise.png'"
                     mode="widthFix" style="width: 300rpx;height: 150rpx;"></image>
                     mode="aspectFill" style="width: 300rpx;height: 150rpx;"></image>
               </fui-upload>
               <!-- <template #right>
                  <up-icon name="arrow-right"></up-icon>
               </template> -->
            </up-form-item>
            <up-form-item label="企业名称" required prop="enterpriseInfo.suppliername" borderBottom ref="item1">
            <up-form-item label="企业名称" required prop="suppliername" ref="item1">
               <up-input v-model="enterpriseInfo.suppliername" border="none" placeholder="请输入企业名称"
                  readonly></up-input>
            </up-form-item>
            <up-form-item label="企业注册号" required prop="enterpriseInfo.suppliercode" borderBottom ref="item1">
            <up-form-item label="企业注册号" required prop="suppliercode" ref="item1">
               <up-input v-model="enterpriseInfo.suppliercode" border="none" placeholder="请输入企业注册号"
                  readonly></up-input>
            </up-form-item>
            <up-form-item label="注册时间" required prop="enterpriseInfo.regtime" borderBottom ref="item1">
            <up-form-item label="注册时间" required prop="regtime" ref="item1">
               <up-input v-model="enterpriseInfo.regtime" border="none" placeholder="请输入企业注册号" readonly></up-input>
            </up-form-item>
            <up-form-item label="企业注册地址" required prop="enterpriseInfo.address" borderBottom ref="item1">
               <up-input v-model="enterpriseInfo.address" border="none" placeholder="请输入企业注册地址"
                  readonly></up-input>
            <up-form-item label="企业地址" required prop="address" ref="item1">
               <up-input v-model="enterpriseInfo.address" border="none" placeholder="请输入企业地址" readonly></up-input>
            </up-form-item>
            <up-form-item label="联系人" required prop="enterpriseInfo.contact" borderBottom ref="item1">
            <up-form-item label="联系人" required prop="contact" ref="item1">
               <up-input v-model="enterpriseInfo.contact" border="none" placeholder="请输入联系人"></up-input>
            </up-form-item>
            <up-form-item label="联系电话" required prop="enterpriseInfo.phone" borderBottom ref="item1">
            <up-form-item label="联系电话" required prop="phone" ref="item1">
               <up-input v-model="enterpriseInfo.phone" border="none" placeholder="请输入联系电话"></up-input>
            </up-form-item>
            <up-form-item label="公司简介" required prop="enterpriseInfo.resume" borderBottom ref="item1">
               <up-textarea v-model="enterpriseInfo.resume" count placeholder="请输入公司简介"
                  maxlength='800'></up-textarea>
            <up-form-item label="公司简介" required prop="resume" ref="item1">
            </up-form-item>
            <up-textarea v-model="enterpriseInfo.resume" count placeholder="请输入公司简介" height='200'
               maxlength='800'></up-textarea>
            <view class="tabbtns">
               <up-button color='#fece01' class="text-69" text="保存" @click="saveUserCompany"></up-button>
               <up-button color='#fece01' class="text-69" text="保存" :loading='isLoading' loadingText="保存中"
                  @click="saveUserCompany"></up-button>
            </view>
         </up-form>
      </view>
@@ -55,13 +56,57 @@
   } from '@/common/setting/constVarsHelper.js';
   import {
      onLoad,
      onShow
      onShow,
      onReady
   } from "@dcloudio/uni-app";
   let sizeType = ['compressed']
   let rules = {
      businessLicense: {
         required: true,
         message: '营业执照不能为空',
         trigger: ['blur', 'change']
      }, //营业执照路径
      suppliername: {
         required: true,
         message: '企业名称不能为空',
         trigger: ['blur', 'change']
      }, //企业名称
      regtime: {
         required: true,
         message: '注册时间不能为空',
         trigger: ['blur', 'change']
      }, //注册时间
      address: {
         required: true,
         message: '企业地址不能为空',
         trigger: ['blur', 'change']
      }, //联系地址
      suppliercode: {
         required: true,
         message: '企业注册号不能为空',
         trigger: ['blur', 'change']
      }, //企业注册号
      contact: {
         required: true,
         message: '联系人不能为空',
         trigger: ['blur', 'change']
      }, //联系人
      resume: {
         required: true,
         message: '公司简介不能为空',
         trigger: ['blur', 'change']
      }, //公司简介
      phone: {
         required: true,
         message: '电话号码不能为空',
         trigger: ['blur', 'change']
      }
   }
   import {
      ref,
      reactive,
      getCurrentInstance
      getCurrentInstance,
      onMounted
   } from 'vue';
   const {
      $upload,
@@ -70,7 +115,24 @@
      $db
   } = getCurrentInstance().appContext.config.globalProperties
   onLoad(() => {
      let data = JSON.parse($db.get('userInfo')).userCompany
      const userToken = $db.get("userToken");
      if (!userToken) {
         uni.showToast({
            title: '请先登录!',
            icon: 'none',
            duration: 1000,
            complete: function() {
               setTimeout(function() {
                     uni.hideToast();
                     uni.navigateTo({
                        url: '/pages/login/index'
                     });
                  },
                  1000);
            }
         });
      }
      let data = $db.get('userInfo') ? JSON.parse($db.get('userInfo')).userCompany : null
      if (data) {
         enterpriseInfo.businessLicense = data.businessLicense
         enterpriseInfo.suppliername = data.suppliername //企业名称
@@ -83,8 +145,16 @@
         enterpriseInfo.resume = data.resume
      }
   })
   let isLoading = ref(false)
   // 使用 ref 创建响应式引用  
   const formRef = ref(null);
   onReady(() => {
      formRef.value.setRules(rules);
   })
   onMounted(() => {
      formRef.value.setRules(rules);
      console.log(formRef.value, 'formRef'); // 访问子组件Demo中的属性
   });
   const enterpriseInfo = reactive({
      id: 0, //用户公司Id
      businessLicense: '', //营业执照路径
@@ -123,17 +193,30 @@
   }
   const saveUserCompany = () => {
      $api.saveUserCompany(enterpriseInfo).then(res => {
         if (res.code == 1) {
            $api.getUser().then(res => {
               $db.set('userInfo', JSON.stringify(res.data))
            })
            $util.showToast({
               title: "保存成功!",
               icon: "success"
            })
         }
      formRef.value.validate().then(res => {
         isLoading.value = true
         $api.saveUserCompany(enterpriseInfo).then(res => {
            if (res.code == 1) {
               $api.getUser().then(res => {
                  $db.set('userInfo', JSON.stringify(res.data))
               })
               $util.showToast({
                  title: "保存成功!",
                  icon: "success"
               })
               uni.navigateBack()
            } else {
               $util.showToast({
                  title: res.msg
               })
            }
            isLoading.value = false
         })
      }).catch(errors => {
         console.log(errors)
         uni.$u.toast(errors[0].message)
      })
   }
</script>
@@ -142,4 +225,8 @@
      background-color: #fff;
      padding: 0 20rpx;
   }
   .u-form-item__body {
      padding: 5px 0 !important;
   }
</style>