yubo
2026-04-06 6448ec15bfe0b65fb822a662105bceddc23b58d8
src/views/user/outemployess.vue
@@ -263,7 +263,7 @@
            </template>
          </el-table-column>
          <el-table-column show-overflow-tooltip prop="empNumb" label="编号" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" width="280" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
          <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
          <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" sortable="custom" :sort-orders="['ascending', 'descending']" />
@@ -299,6 +299,7 @@
              {{ transEntryType(row.dimissionType) }}
            </template>
          </el-table-column>
          <el-table-column show-overflow-tooltip prop="annualLeave" label="年假天数" width="110" />
        </el-table>
        <pagination
          v-show="total>0"
@@ -904,8 +905,8 @@
            </table>
            <table>
              <tr>
                <td colspan="8" class="tdTitle">劳资案件</td>
                <td class="link_button">新增劳资案件</td>
                <td colspan="8" class="tdTitle">仲裁案件</td>
                <td class="link_button">新增仲裁案件</td>
                <td class="del_button">删除</td>
              </tr>
              <tr>
@@ -1011,6 +1012,17 @@
                value-format="yyyy-MM-dd"
                type="date"
                placeholder="选择打开日期"
              />
            </el-form-item>
            <el-form-item label="部门(护卫点)" required message="请选择部门(护卫点)" prop="allDeptName">
              <treeselect
                v-model="baseicInformationForm.deptId"
                :multiple="false"
                :options="depts"
                :clear-value-text="$t('common.clear')"
                placeholder="请选择部门(护卫点)"
                style="width:100%"
                @select="DeptNameSelect"
              />
            </el-form-item>
            <el-form-item label="备注说明">
@@ -1222,6 +1234,16 @@
              <el-checkbox label="empNumb"><span /></el-checkbox>
            </td>
          </tr>
          <tr>
            <td>年假天数</td>
            <td>
              <el-checkbox label="annualLeave"><span /></el-checkbox>
            </td>
            <td />
            <td />
            <td />
            <td />
          </tr>
        </el-checkbox-group>
      </table>
      <div slot="footer" class="dialog-footer">
@@ -1241,12 +1263,16 @@
<script>
import Pagination from '@/components/Pagination'
import ArchivesChange from './archivesChange'
import Treeselect from '@riophae/vue-treeselect'
import dictMixin from '../../utils/dictMixin'
export default {
  components: {
    Treeselect,
    ArchivesChange,
    Pagination
  },
  mixins: [dictMixin],
  data() {
    return {
      dialog: {
@@ -1275,6 +1301,7 @@
        size: 15,
        num: 1
      },
      depts: [],
      headerHeight: '30px',
      advancedQueryShow: false,
      dialogTableVisible: false,
@@ -1291,45 +1318,45 @@
      baseicInformationForm: {
        openDate: new Date()
      },
      educationOptions: [],
      statusOptions: [],
      ageStrOptions: [],
      insuranceTypeOptions: [],
      archivesStatusOptions: [],
      sexOptions: [],
      empTypeOptions: [],
      cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb'],
      cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb', 'annualLeave'],
      checkedCities: []
    }
  },
  computed: {
    // 字典选项计算属性
    educationOptions() { return this.getDictOptions('EDUCATION') },
    statusOptions() { return this.getDictOptions('PLITICAL') },
    ageStrOptions() { return this.getDictOptions('ageStr') },
    insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') },
    archivesStatusOptions() { return this.getDictOptions('archivesStatus') },
    sexOptions() { return this.getDictOptions('sex') },
    empTypeOptions() { return this.getDictOptions('EMPTYPE') },
    certificateListOptions() { return this.getDictOptions('certificateList') }
  },
  mounted() {
    this.fetch()
    this.getDicts('INSURANCETYPE').then(response => {
      this.insuranceTypeOptions = response.data
    })
    this.getDicts('archivesStatus').then(response => {
      this.archivesStatusOptions = response.data
    })
    this.getDicts('EDUCATION').then(response => {
      this.educationOptions = response.data
    })
    this.getDicts('sex').then(response => {
      this.sexOptions = response.data
    })
    this.getDicts('PLITICAL').then(response => {
      this.statusOptions = response.data
    })
    this.getDicts('ageStr').then(response => {
      this.ageStrOptions = response.data
    })
    this.getDicts('EMPTYPE').then(response => {
      this.empTypeOptions = response.data
    })
    this.getDicts('certificateList').then(response => {
      this.certificateListOptions = response.data
    })
    // 字典数据已在登录时预加载,直接从 Vuex 获取
    this.initDictTypes(['INSURANCETYPE', 'archivesStatus', 'EDUCATION', 'sex', 'PLITICAL', 'ageStr', 'EMPTYPE', 'certificateList'])
    this.initDept()
  },
  methods: {
    initDept() {
      this.$get('system/dept').then((r) => {
        this.depts = r.data.data.rows
        this.deptTree = this.depts
      }).catch((error) => {
        console.error(error)
        this.$message({
          message: this.$t('tips.getDataFail'),
          type: 'error'
        })
      })
    },
    DeptNameSelect(val) {
      this.baseicInformationForm.deptId = val.deptId
      this.baseicInformationForm.deptName = val.label
      this.baseicInformationForm.allDeptName = val.allDeptName
    },
    exportExcel() {
      this.queryParams.baseKey = this.queryParams.vague
      var params = this.queryParams
@@ -1443,6 +1470,8 @@
          return '试用期内'
        case '6':
          return '正常离职'
        case '7':
          return '到龄退休'
      }
    },
    transDimissionType(dimissionType) {
@@ -1512,7 +1541,9 @@
            var id = selection[0].empId
            var name = selection[0].empName
            var number = selection[0].certificateNumb
            var deptName = selection[0].allDeptName
            var deptName = selection[0].deptName
            var deptId = selection[0].deptId
            var allDeptName = selection[0].allDeptName
            const nowDate = new Date()
            const year = nowDate.getFullYear()
            const month = nowDate.getMonth() + 1
@@ -1524,7 +1555,9 @@
              openType: 21,
              openDate: year + '-' + month + '-' + day,
              remark: '',
              allDeptName: deptName
              deptId: deptId,
              deptName: deptName,
              allDeptName: allDeptName
            }
            this.dialogShowDkda = true
          } else {