王恒
2025-09-04 616e6be49d3f64f2397cb1b1c05d2c06df3db9a3
policy/policyApply/policyApply.vue
@@ -1,474 +1,546 @@
<template>
   <view class="page-box">
      <view class="content-box">
         <view class="form">
            <view class="form-item">
               <view class="form-label require">
                  执法主题
               </view>
               <input type="text" placeholder="请输入" v-model.trim="form.enforceReason"/>
            </view>
            <view class="form-item">
               <view class="form-label require">
                  执法对象
               </view>
               <view class="input" @click="search">
                  <input type="text" style="width: 80%;" disabled  placeholder="请选择" :value="form.companyName"/>
                  <u-icon name="arrow-right"></u-icon>
                  <!-- <u-text text='搜索' type="primary" style="width: 20%;" @click="search"></u-text> -->
               </view>
            </view>
            <view class="form-item">
               <view class="form-label require">
                  执法时间
               </view>
               <view class="input" @click="showTimeFun">
                  <input type="text" placeholder="请选择" disabled v-model.trim="form.planTimeStr"/>
                  <u-icon name="arrow-right"></u-icon>
               </view>
            </view>
            <view class="form-item" @click="showType = true">
               <view class="form-label require">
                  执法类型
               </view>
               <view class="input">
                  <input type="text" placeholder="请选择" v-model.trim="form.enforceTypeName" disabled/>
                  <u-icon name="arrow-right"></u-icon>
               </view>
            </view>
            <view class="form-item last">
               <view class="form-label require">
                  执法内容
               </view>
               <view class="back">
                  <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="请输入" count maxlength="500"></u--textarea>
               </view>
            </view>
         </view>
      </view>
      <view class="content-box">
         <view class="form ">
            <view class="form-item">
               <view class="form-label">
                  执法人员
               </view>
               <input type="text" placeholder="请输入" v-model.trim="form.applyUser" disabled/>
            </view>
            <view class="form-item">
               <view class="form-label">
                  执法部门
               </view>
               <!-- <input type="text" placeholder="请输入" v-model.trim="form.applyDeptName" disabled/> -->
               <view style="width: 60%;">{{form.applyDeptName}}</view>
            </view>
            <view class="form-item sui" style="align-items: flex-start;" @click="openPer">
               <view class="form-label  ">
                  随行人员
               </view>
               <view>
                  <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">请选择</view>
                  <view v-else>
                     <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers"  :key="index">
                        {{item.peerUser}}({{item.peerDeptName}})
                     </view>
                  </view>
               </view>
               <!-- <u-textarea  border="none" disabled style="padding: 0;" placeholder="请选择" ></u-textarea> -->
            </view>
            <view class="form-item down-2">
               <view class="form-label">
                  是否通知企业
               </view>
               <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
            </view>
         </view>
      </view>
      <view class="down-options">
         <view class="button record" @click="applyRecord">申请记录</view>
         <view class="button submit" @click="submitApply">提交申请</view>
      </view>
      <!-- <u-form label-position="top" label-width="120px">
         <u-form-item label="执法主题">
            <u-input placeholder="请输入" v-model="form.enforceReason"></u-input>
         </u-form-item>
         <u-form-item label="执法对象">
            <u-input placeholder="请输入" v-model="form.companyName">
               <template  slot="suffix">
                  <text @click="search">搜索</text>
               </template>
            </u-input>
         </u-form-item>
         <u-form-item label="执法时间" @click="showTimeFun">
            <u-input placeholder="请输入" v-model="form.applyTime" readonly></u-input>
         </u-form-item>
         <u-form-item label="执法类型" @click="showType = true">
            <u-input placeholder="请输入" v-model="form.enforceTypeName" readonly></u-input>
         </u-form-item>
         <u-form-item label="执法内容">
            <u-input placeholder="请输入" v-model="form.regionReason"></u-input>
         </u-form-item>
         <u-form-item label="执法人员">
            <u-input placeholder="请输入" v-model="form.applyName"></u-input>
         </u-form-item>
         <u-form-item label="执法部门">
            <u-input placeholder="请输入" v-model="form.applyDeptName"></u-input>
         </u-form-item>
         <u-form-item label="随行人员数量">
            <u-input placeholder="请输入" v-model="form.userNum"></u-input>
         </u-form-item>
         <u-form-item label="是否通知企业">
            <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
         </u-form-item>
      </u-form> -->
<!--       <u-button @click="submitApply">提交申请</u-button>
      <u-button @click="applyRecord">申请记录</u-button> -->
      <!-- <u-picker :show="show"   @close="show = false" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName">
      </u-picker> -->
      <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch" @cancel="show = false" :columns="columns" keyName="companyName"></perPicker>
          <yt-dateTimePicker
               ref="myPicker"
               @submit="confirmTime"
               :time-init="timeInit"
              :start-year="year"
              :startMonth="month"
               :time-hide="[true, true, true, true, false, false]"
             />
         <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false" :columns="columnsType" keyName="dictLabel"></u-picker>
         <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage>
   </view>
</template>
<script>
   import { orderAdd, companyList, enforceList } from '@/api/policy.js'
   import { getInfo } from '@/api/auth.js'
   import { getDicts } from '@/api/data'
   import perPage from './perPage'
   import perPicker from './perPicker'
   import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue"
   export default {
      components: {
         YtDateTimePicker,
         perPage,
         perPicker
      },
      data() {
         return {
            currentTime: "",
            form: {
               applyUser: '',
               applyDeptName: '',
               enforceType: 1,
               isNoticeCompany: 0,
               // regionReason: 0,
               planTimeStr: '',
               peers: [],
               orderStatus: 1,
               enforceContent: "",
               companyName: ""
            },
            show: false,
            columns: [],
            showTime: false,
            columnsType: [],
            showType: false,
            minDate: '',
            year: '',
            endYear: '',
            timeInit: '',
            list: [],
            startTime: "",
            month: ''
         }
      },
      onLoad() {
         this.year = new Date().getFullYear()
         this.month = new Date().getMonth() + 1
         this.endYear = this.year + 5
         this.minDate = new Date().valueOf()
         this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
         this.startTime =this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
         this.getInfo()
         this.getDicts()
         this.enforceList()
      },
      onShow() {
      },
      methods: {
         enforceList() {
            enforceList().then(val => {
               this.list = val.data.data
            })
         },
         getDicts() {
            getDicts('enforce_type').then(val =>{
               this.columnsType = [val.data.data]
            })
         },
         getInfo() {
            getInfo().then(val => {
               const value = val.data.data
               // this.form.applyName = value.nickName
               this.form.applyUser = value.nickName
               this.form.applyId = value.userId
               this.form.applyDeptName = value.dept.deptName
               this.form.applyDeptId = value.dept.deptId
               this.form.applyPhone = value.phonenumber
            })
         },
         timeFilter(mode, options) {
            let d = new Date()
            // console.log(d.getFullYear());
            if(mode === 'year'){
               return options.filter((option)=>option>= d.getFullYear())
            }
            if(mode === 'month'){
               return options.filter((option)=>option>= d.getMonth()+1)
            }
            if (mode === 'minute') {
               return options.filter((option) => option === '00' || option === '30');
            }
            return options;
         },
         authFile() {
            if(!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")){
               return '请填写主题'
            }
            if(!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")){
               return '请选择执法对象'
            }
            // if(!this.form.companyId) {
            //    return '请点击搜索确认执法对象'
            // }
            if(!this.form.planTimeStr) {
               return '请填写执法时间'
            }
            if(!this.form.enforceTypeName){
               return '请选择执法类型'
            }
            console.log(!this.form.enforceContent.replace(/\s+/g, ""))
            if(!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) {
               return '请填写执法内容'
            }
            // if(!this.form.peers.length){
            //    return '请选择随行人员'
            // }
            return ''
         },
         submitApply(){
            const res =   this.authFile()
            if(res){
               uni.showToast({
                  title: res,
                  icon: 'none'
               })
               return
            }
            orderAdd(this.form).then(val => {
               if(val.data.code == 200) {
                  uni.showToast({
                     title: '提交成功',
                     icon: 'none'
                  })
                  setTimeout(() => {
                     uni.navigateBack()
                  }, 500)
               }
            })
         },
         applyRecord() {
            uni.navigateTo({
               url:`/policy/applyRecord/applyRecord`
            })
         },
         search() {
            // companyList({companyName: this.form.companyName}).then(val => {
            //    if(val.data.code == 200){
            //       if(!val.data.rows.length || !val.data.rows){
            //          uni.showToast({
            //             title: '没有符合的数据,请检查输入的执法对象',
            //             icon: 'none',
            //             duration: 3000
            //          })
            //       } else {
            //       }
            //    }
            // })
            this.$refs.perPicker.open()
         },
         confirmSearch(e){
            let value = e
            // const value =   this.columns[0].find(item => item.companyName == e.value[0].companyName)
            this.form.companyName = e.companyName
            this.form.companyCode = value.companyCode
            this.form.companyId    = value.companyId
            this.form.companyPhone = value.companyPhone
            this.form.companyUser = value.companyUser
            this.form.companyAddress = value.companyAddress
            // console.log(this.form.companyName)
         },
         setCompany(e) {
            this.form.companyName = e
         },
         confirmTime(e) {
            this.form.planTime = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00:00"
            this.form.planTimeStr = e.year + '-' + e.month+ '-' + + e.day + ' ' + e.hour + ":" + "00"
            this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM')
         },
         showTimeFun() {
            // this.showTime = true
                     this.$refs.myPicker.show();
         },
         sheet(){
         },
         confirmType(e){
            this.form.enforceType = e.value[0].dictCode
            this.form.enforceTypeName = e.value[0].dictLabel
            this.showType = false
         },
         changeValue(e, e1) {
            this.currentTime = e.value
         },
         openPer() {
            this.$refs.perpage.open(this.list)
         },
         selectValue(value) {
            value.forEach(val => {
               this.form.peers.push(val)
            });
            this.form.peers = this.uniqueArrJson(this.form.peers,'peerId')
         },
         uniqueArrJson(arr,key) {
           var newobj = {},newArr = [];
           for(var i=0;i<arr.length;i++){
               var item = arr[i];
             if(!newobj[item[key]]){
                   newobj[item[key]] = newArr.push(item);
             }
           }
           return newArr;
         }
      }
   }
</script>
<style>
   page{
      background-color: #F4F4F4;
   }
   .sui  .u-textarea{
      padding: 0 !important;
   }
</style>
<style scoped lang="scss">
.page-box{
   padding-bottom: 140rpx;
   .content-box{
      margin:20rpx 32rpx;
      background-color: white;
      padding: 24rpx;
      border-radius: 10rpx;
   }
   .form{
      .form-item{
         display: flex;
         justify-content: flex-start;
         align-items: center;
         border-bottom: 2rpx solid #F1F1F1;
         padding-bottom: 26rpx;
         margin-bottom: 24rpx;
         .form-label{
            font-size: 30rpx;
            color: #4A4E60;
            width: 40%;
         }
         .input{
            width: 60%;
            display: flex;
            justify-content: space-between;
            align-items: center;
         }
         .require{
            &::after{
               content: '*';
               color: #FF7500;
            }
         }
      }
      .down-2{
         margin-bottom: 0;
         padding-bottom: 0;
         border: none;
      }
      .last{
         margin-bottom: 0;
         padding-bottom: 0;
         border-bottom: none;
         display: block;
         .form-label{
            margin-bottom: 16rpx;
         }
         .back{
            /deep/ .u-textarea{
               background-color: #F4F4F4;
               border: none;
               .u-textarea__count{
                  background: none !important;
               }
            }
         }
      }
   }
}
.down-options{
   background-color: white;
   position: fixed;
   bottom: 0;
   padding-bottom: 40rpx;
   width: 100%;
   padding: 22rpx 30rpx 40rpx;
   z-index: 800;
   display: flex;
   justify-content: space-between;
   align-items: center;
   box-sizing: border-box;
   .record{
      box-sizing: border-box;
      border-radius: 20rpx;
      border: 2rpx solid #ABD2FF;
      background: #F0F8FF;
      color: #1171E0;
      font-size: 32rpx;
      padding: 20rpx 30rpx;
      width: 30%;
      text-align: center;
   }
   .submit{
      border-radius: 20rpx;
      border: 2rpx solid #1171E0;
      background-color: #1171E0;
      color: white;
      width: 65%;
      box-sizing: border-box;
      padding: 20rpx 30rpx;
      text-align: center;
   }
}
.sui{
}
/deep/  .u-checkbox-label--right >  text{
      line-height: 54rpx !important;
      margin-right: 15rpx;
}
</style>
<template>
  <view class="page-box">
    <view class="content-box">
      <view class="form">
        <view class="form-item">
          <view class="form-label require">
            计划名称
          </view>
          <input type="text" placeholder="请输入计划名称" v-model.trim="form.enforceReason" />
        </view>
        <view class="form-item">
          <view class="form-label require">
            被检查对象
          </view>
          <view class="input" @click="search">
            <input type="text" style="width: 80%;" disabled placeholder="请选择被检查对象" :value="form.companyName" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item">
          <view class="form-label require">
            执法时间
          </view>
          <view class="input" @click="showTimeFun">
            <input type="text" placeholder="请选择" disabled v-model.trim="form.planTimeStr" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item" @click="showType = true">
          <view class="form-label require">
            检查类型
          </view>
          <view class="input">
            <input type="text" placeholder="请选择检查类型" v-model.trim="form.enforceTypeName" disabled />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item last">
          <view class="form-label require">
            检查内容
          </view>
          <view class="back">
            <u--textarea :height="120" v-model.trim="form.enforceContent" placeholder="请输入检查内容" count
              maxlength="500"></u--textarea>
          </view>
        </view>
      </view>
    </view>
    <view class="content-box">
      <view class="form ">
        <view class="form-item">
          <view class="form-label">
            执法人员
          </view>
          <input type="text" placeholder="请输入" v-model.trim="form.applyUser" disabled />
        </view>
        <view class="form-item">
          <view class="form-label">
            执行科室
          </view>
          <!-- <input type="text" placeholder="请输入" v-model.trim="form.applyDeptName" disabled/> -->
          <view class="select-content" @tap="openSelectOffice">
            <view>{{form.applyDeptNames}}</view>
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
        <view class="form-item sui" style="align-items: flex-start;" @click="openPer">
          <view class="form-label  ">
            随行人员
          </view>
          <view>
            <view style="color: #a2a2a2;" class="placeholder" v-if="!form.peers.length">请选择</view>
            <view v-else>
              <view style="margin-bottom: 20rpx;" v-for="(item,index) in form.peers" :key="index">
                {{item.peerUser}}({{item.peerDeptName}})
              </view>
            </view>
          </view>
        </view>
        <view class="form-item">
          <view class="form-label">
            是否通知企业
          </view>
          <u-switch v-model="form.isNoticeCompany" :activeValue="1" :inactiveValue="0"></u-switch>
        </view>
        <view class="form-item" :class="{'down-2' : !isRectify }">
          <view class="form-label">
            是否创建整改
          </view>
          <u-switch v-model="isRectify" :activeValue="1" :inactiveValue="0" @change="changeRectify"></u-switch>
        </view>
        <view class="form-item down-2" v-if="isRectify == 1">
          <view class="form-label require">
            整改计划
          </view>
          <view class="input" @click="searchRectify">
            <input type="text" style="width: 80%;" disabled placeholder="请选择整改计划" :value="rectifyName" />
            <u-icon name="arrow-right"></u-icon>
          </view>
        </view>
      </view>
    </view>
    <view class="down-options">
      <view class="button record" @click="applyRecord">申请记录</view>
      <view class="button submit" @click="submitApply">提交申请</view>
    </view>
    <perPicker ref="perPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmSearch"
      @cancel="show = false" :columns="columns" keyName="companyName"></perPicker>
    <yt-dateTimePicker ref="myPicker" @submit="confirmTime" :time-init="timeInit" :start-year="year" :startMonth="month"
      :time-hide="[true, true, true, true, false, false]" />
    <u-picker :show="showType" @close="showType = false" @confirm="confirmType" @cancel="showType = false"
      :columns="columnsType" keyName="dictLabel"></u-picker>
    <perPage :list="list" ref="perpage" @selectValue="selectValue"></perPage>
    <officePopup :officeShow.sync="officeShow" :list="officeList" @selectValue="selectOfficeRes"></officePopup>
    <rectifyPicker ref="rectifyPicker" @setCompany="setCompany" :immediateChange="true" @confirm="confirmRectify"
      :applyOrgId="form.applyOrgId" :companyId="form.companyId" @cancel="show = false" :columns="columns"
      keyName="enforceReason"></rectifyPicker>
  </view>
</template>
<script>
  import {
    orderAdd,
    companyList,
    enforceList,
    officeList,
  } from '@/api/policy.js'
  import {
    getInfo
  } from '@/api/auth.js'
  import {
    getDicts
  } from '@/api/data'
  import perPage from './perPage'
  import officePopup from './officePopup'
  import perPicker from './perPicker'
  import rectifyPicker from './rectifyPicker'
  import YtDateTimePicker from "uni_modules/yt-dateTimePicker/components/yt-dateTimePicker/yt-dateTimePicker.vue"
  export default {
    components: {
      YtDateTimePicker,
      perPage,
      perPicker,
      officePopup,
      rectifyPicker
    },
    data() {
      return {
        currentTime: "",
        form: {
          enforceReason: '', // 执法主题
          companyName: "", // 执法对象
          planTime: '', // 执法时间
          planTimeStr: '', // 执法时间
          enforceType: '', // 检查方式
          enforceTypeName: '', // 检查方式名称
          enforceContent: "", // 执法内容
          applyUser: '', // 执法人员
          applyOrgId: "", // 制定机构id
          applyOrgName: "", // 制定机构名称
          applyDeptIds: "", // 执行科室id
          applyDeptNames: "", // 执行科室名称
          peers: [], // 随行人员
          isNoticeCompany: 0, // 是否通知企业
          orderStatus: 1,
          joinOrderId: null,
        },
        show: false,
        columns: [],
        showTime: false,
        columnsType: [],
        showType: false,
        minDate: '',
        year: '',
        endYear: '',
        timeInit: '',
        list: [],
        startTime: "",
        month: '',
        officeList: [],
        officeShow: false,
        isRectify: 0, // 是否创建整改
        rectifyName: '', // 整改关联计划名称
      }
    },
    onLoad() {
      this.year = new Date().getFullYear()
      this.month = new Date().getMonth() + 1
      this.endYear = this.year + 5
      this.minDate = new Date().valueOf()
      this.timeInit = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
      this.startTime = this.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM')
      this.getInfo()
      this.getDicts()
      this.enforceList()
    },
    onShow() {
    },
    methods: {
      changeRectify(e) {
        if (e == 0) {
          this.form.joinOrderId = null
          this.rectifyName = ''
        }
      },
      enforceList() {
        enforceList().then(val => {
          this.list = val.data.data
        })
      },
      getDicts() {
        getDicts('enforce_type').then(val => {
          this.columnsType = [val.data.data]
        })
      },
      getInfo() {
        getInfo().then(val => {
          const value = val.data.data
          // this.form.applyName = value.nickName
          this.form.applyUser = value.nickName
          this.form.applyId = value.userId
          this.form.applyPhone = value.phonenumber
          this.form.applyOrgId = value.dept.parentId // 制定机构id
          this.form.applyOrgName = value.dept.parentName // 制定机构名称
          this.form.applyDeptNames = value.dept.deptName // 科室名称
          this.form.applyDeptIds = value.dept.deptId // 科室id
          this.getOfficeList()
        })
      },
      timeFilter(mode, options) {
        let d = new Date()
        // console.log(d.getFullYear());
        if (mode === 'year') {
          return options.filter((option) => option >= d.getFullYear())
        }
        if (mode === 'month') {
          return options.filter((option) => option >= d.getMonth() + 1)
        }
        if (mode === 'minute') {
          return options.filter((option) => option === '00' || option === '30');
        }
        return options;
      },
      authFile() {
        if (!this.form.enforceReason || !this.form.enforceReason.replace(/\s+/g, "")) {
          return '请填写主题'
        }
        if (!this.form.companyName || !this.form.companyName.replace(/\s+/g, "")) {
          return '请选择执法对象'
        }
        if (!this.form.planTimeStr) {
          return '请填写执法时间'
        }
        if (!this.form.enforceTypeName) {
          return '请选择检查方式'
        }
        if (!this.form.enforceContent || !this.form.enforceContent.replace(/\s+/g, "")) {
          return '请填写执法内容'
        }
        if (!this.form.applyDeptIds) {
          return '请选择执法部门'
        }
        // if(!this.form.peers.length){
        //    return '请选择随行人员'
        // }
        if (this.isRectify == 1) {
          if (this.form.joinOrderId == null) {
            return '请选择整改计划'
          }
        }
        return ''
      },
      submitApply() {
        const res = this.authFile()
        if (res) {
          uni.showToast({
            title: res,
            icon: 'none'
          })
          return
        }
        orderAdd(this.form).then(val => {
          if (val.data.code == 200) {
            uni.showToast({
              title: '提交成功',
              icon: 'none'
            })
            setTimeout(() => {
              uni.navigateBack()
            }, 500)
          }
        })
      },
      applyRecord() {
        uni.navigateTo({
          url: `/policy/applyRecord/applyRecord`
        })
      },
      search() {
        this.$refs.perPicker.open()
      },
      searchRectify() {
        if (!this.form.companyId) return this.$u.toast('请先选择企业')
        this.$refs.rectifyPicker.open()
      },
      confirmRectify(e) {
        console.log(e)
        this.form.joinOrderId = e.orderId
        this.rectifyName = e.enforceReason
      },
      confirmSearch(e) {
        let value = e
        this.form.companyName = e.companyName
        this.form.companyCode = value.companyCode
        this.form.companyId = value.companyId
        this.form.companyPhone = value.companyPhone
        this.form.companyUser = value.companyUser
        this.form.companyAddress = value.companyAddress
        this.form.joinOrderId = null
        this.rectifyName = ''
      },
      setCompany(e) {
        this.form.companyName = e
        this.form.companyCode = ''
        this.form.companyId = ''
        this.form.companyPhone = ''
        this.form.companyUser = ''
        this.form.companyAddress = ''
      },
      confirmTime(e) {
        this.form.planTime = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00:00"
        this.form.planTimeStr = e.year + '-' + e.month + '-' + +e.day + ' ' + e.hour + ":" + "00"
        this.timeInit = this.$u.timeFormat(new Date(this.form.planTimeStr), 'yyyy-mm-dd hh:MM')
      },
      showTimeFun() {
        // this.showTime = true
        this.$refs.myPicker.show();
      },
      sheet() {
      },
      confirmType(e) {
        this.form.enforceType = e.value[0].dictCode
        this.form.enforceTypeName = e.value[0].dictLabel
        this.showType = false
      },
      changeValue(e, e1) {
        this.currentTime = e.value
      },
      openPer() {
        this.$refs.perpage.open(this.list)
      },
      selectValue(value) {
        value.forEach(val => {
          this.form.peers.push(val)
        });
        this.form.peers = this.uniqueArrJson(this.form.peers, 'peerId')
      },
      uniqueArrJson(arr, key) {
        var newobj = {},
          newArr = [];
        for (var i = 0; i < arr.length; i++) {
          var item = arr[i];
          if (!newobj[item[key]]) {
            newobj[item[key]] = newArr.push(item);
          }
        }
        return newArr;
      },
      openSelectOffice() {
        this.officeShow = true
      },
      selectOfficeRes(data) {
        this.form.applyDeptIds = data.deptIds
        this.form.applyDeptNames = data.deptNames
      },
      async getOfficeList() {
        const {
          data: res
        } = await officeList({
          pageNum: 1,
          pageSize: 1000,
          parentId: this.form.applyOrgId,
        })
        this.officeList = res.data.map(obj => {
          return {
            deptId: obj.deptId,
            deptName: `${this.form.applyOrgName}-${obj.deptName}`
          }
        })
        console.log(this.officeList)
      },
    }
  }
</script>
<style>
  page {
    background-color: #F4F4F4;
  }
  .sui .u-textarea {
    padding: 0 !important;
  }
</style>
<style scoped lang="scss">
  .page-box {
    padding-bottom: 140rpx;
    .content-box {
      margin: 20rpx 32rpx;
      background-color: white;
      padding: 24rpx;
      border-radius: 10rpx;
    }
    .form {
      .form-item {
        display: flex;
        justify-content: flex-start;
        align-items: center;
        border-bottom: 2rpx solid #F1F1F1;
        padding-bottom: 26rpx;
        margin-bottom: 24rpx;
        .form-label {
          width: 236rpx !important;
          font-size: 30rpx;
          color: #4A4E60;
          width: 40%;
        }
        .input {
          width: 60%;
          display: flex;
          justify-content: space-between;
          align-items: center;
        }
        .require {
          &::after {
            content: '*';
            color: #FF7500;
          }
        }
      }
      .down-2 {
        margin-bottom: 0;
        padding-bottom: 0;
        border: none;
      }
      .last {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
        display: block;
        .form-label {
          margin-bottom: 16rpx;
        }
        .back {
          ::v-deep .u-textarea {
            background-color: #F4F4F4;
            border: none;
            .u-textarea__count {
              background: none !important;
            }
          }
        }
      }
    }
  }
  .down-options {
    background-color: white;
    position: fixed;
    bottom: 0;
    padding-bottom: 40rpx;
    width: 100%;
    padding: 22rpx 30rpx 40rpx;
    z-index: 800;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-sizing: border-box;
    .record {
      box-sizing: border-box;
      border-radius: 20rpx;
      border: 2rpx solid #ABD2FF;
      background: #F0F8FF;
      color: #1171E0;
      font-size: 32rpx;
      padding: 20rpx 30rpx;
      width: 30%;
      text-align: center;
    }
    .submit {
      border-radius: 20rpx;
      border: 2rpx solid #1171E0;
      background-color: #1171E0;
      color: white;
      width: 65%;
      box-sizing: border-box;
      padding: 20rpx 30rpx;
      text-align: center;
    }
  }
  .sui {}
  ::v-deep .u-checkbox-label--right>text {
    line-height: 54rpx !important;
    margin-right: 15rpx;
  }
  .select-content {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    .select-word {
      flex: 1;
    }
  }
</style>