| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- <template>
- <view id="cloud-devaloper">
- <!-- <el-button @click="goAddVer">添加认证</el-button> -->
- <z-table :data="tableData" :keys="tableProps" :labels="tableHeaders" />
- <!-- <el-dialog title="收货地址" :visible.sync="dialogFormVisible">
- <el-form :model="form" :rules="rules" ref="roleForm">
- <el-form-item label="用户 UID" label-width="120px" prop="uid">
- <el-input v-model="form.uid"></el-input>
- </el-form-item>
- <el-form-item label="培训状态" label-width="120px" prop="train_state">
- <el-select v-model="form.train_state" placeholder="请选择培训状态">
- <el-option v-for="(state, index) of states" :key="index" :label="state" :value="index"/>
- </el-select>
- </el-form-item>
- <el-form-item label="自由职业" label-width="120px" prop="freelancer">
- <el-select v-model="form.freelancer" placeholder="请选择自由职业状态">
- <el-option label="是" :value="1"></el-option>
- <el-option label="否" :value="0"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="备注" label-width="120px">
- <el-input v-model="form.note" type="textarea"></el-input>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button @click="dialogFormVisible = false">取 消</el-button>
- <el-button type="primary" @click="addVer('roleForm')">确 定</el-button>
- </div>
- </el-dialog>
- <el-pagination
- @current-change="changePagination"
- :current-page.sync="currentPage"
- :page-size="20"
- layout="total, prev, pager, next"
- :total="totalCount"
- :pager-count="7"
- ></el-pagination> -->
- </view>
- </template>
- <script>
- import tableMixin from '../mixins/table'
- const tableHeaders = [
- "ID",
- "昵称",
- "自由职业",
- "最低时长",
- "当前状态",
- "职业方向",
- "技能",
- "城市",
- "工龄",
- "接单情况",
- "认证时间",
- "备注",
- "操作"
- ]
- const tableProps = [
- "uid",
- "nickname",
- "freelancer",
- "cloud_job_min_work_time",
- "on_projectShow",
- "direction_name",
- "skillStr",
- "city_name",
- "work_year_op",
- "countDevelopProjectStr",
- "cloud_job_verify_timeStr",
- "cloud_job_verify_note",
- "ctrl"
- ]
- const apis = {
- getTrainStates: `/api/admin/common/get_cloud_job_verify_train_state`,
- delete: `/api/admin/user/cancel_cloud_verify`,
- addVer: `/api/admin/user/add_cloud_verify`,
- dataList: `/api/admin/user/get_cloud_verify_list`,
- }
- // 获取当前状态
- const getOnProjectShow = i => {
- let str = ''
- if(i.on_project === 0 && i.on_hire === 0 & i.on_job === 0 && i.work_status === 1) str = '空闲'
- else {
- if(i.on_project) str = '项目'
- else if(i.on_hire) str = '雇佣'
- else if(i.on_job) str = '云端'
- else if(!i.work_status) str = '不接单'
- }
- return str
- }
- export default {
- mixins: [tableMixin],
- data() {
- return {
- // 培训状态
- states: [],
- // 表单验证
- rules: {
- uid: [
- { required: true, message: '请输入 UID', trigger: 'blur' },
- ],
- train_state: [
- { required: true, message: '请选择活动区域', trigger: 'change' }
- ],
- freelancer: [
- { required: true, message: '请选择活动区域', trigger: 'change' }
- ],
- // note: [
- // { required: true, message: '请输入备注', trigger: 'blur' },
- // ],
- },
- // 表单
- form: {},
- // 显示 dislog
- dialogFormVisible: false,
- // 筛选状态
- statuses: [],
- // 数据总条目
- totalCount: 0,
- currentPage: 1,
- // 列表头显示内容
- tableHeaders,
- // 列表头字段
- tableProps,
- // 列表数据
- tableData: []
- }
- },
- mounted() {
- this.getTableData()
- this.getTrainStates()
- },
- methods: {
- // 点击认证提交
- addVer(formName) {
- this.$refs[formName].validate(async (valid) => {
- if(valid) {
- await this.$post(apis.addVer, this.form)
- this.dialogFormVisible = false
- this.getTableData()
- } else {
- return false
- }
- })
- },
- // 点击删除
- clickDelete(uid) {
- this.$confirm(`确认删除 uid 为${uid}?`)
- .then(async _ => {
- await this.$post(apis.delete, {
- uid
- })
- this.getTableData()
- })
- .catch(_ => { })
- },
- // 添加认证
- goAddVer() {
- this.dialogFormVisible = true
- },
- // 点击详情
- clickDetail(uid) {
- window.open(`/rooter/user/${uid}`)
- },
- // 根据状态显示图表样式
- tableRowClassName({
- row,
- rowIndex
- }) {
- // console.log({row, rowIndex})
- let className = ""
- if(row.status === "1") className = "success-row"
- return className
- },
- // 格式化列表数据
- formatTableData(data, resData) {
- const userSkills = resData.userSkills
- return data.map(i => {
- const uid = i.uid
- const countDevelopProject = (resData.countDevelopProject[uid] || 0) + (resData.countManageProject[uid] || 0)
- const countHire = resData.countHire[uid] || 0
- const countJob = resData.countJob[uid] || 0
- const cloudJobVerifyTime = i.cloud_job_verify_time * 1000
- return {
- ...i,
- on_projectShow: getOnProjectShow(i),
- skillStr: userSkills[i.uid].join(','),
- countDevelopProjectStr: `项目:${countDevelopProject},雇佣:${countHire},云端:${countJob}`,
- cloud_job_verify_timeStr: cloudJobVerifyTime > 0 ? new Date(cloudJobVerifyTime).toLocaleDateString() : '--',
- ctrl: "删除"
- }
- })
- },
- // 页码变动
- changePagination(page) {
- this.getTableData()
- },
- // 获取培训状态列表
- async getTrainStates() {
- const res = await this.$post(apis.getTrainStates)
- if(res) {
- // console.log(res.data)
- this.states = res.data
- }
- },
- // 获取列表数据
- async getTableData(status = 0) {
- const p = this.currentPage
- const res = await this.$post(apis.dataList, {
- p
- })
- // console.log(res.data.data)
- const data = res.data.data
- const list = data.list
- this.tableData = this.formatTableData(list, data)
- this.totalCount = Number(data.total)
- this.totalPage = data.totalPage
- }
- }
- }
- </script>
- <style lang="less" scoped>
- #cloud-devaloper {
- .table {
- height: 100%;
- height: calc(100% - 80px);
- }
- }
- </style>
|