This commit is contained in:
lcw
2025-09-25 09:44:55 +08:00
20 changed files with 229 additions and 132 deletions

View File

@ -13,16 +13,16 @@
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
background-color: #fff; // background-color: #fff;
border: 1px solid #e9e9e9 !important; // border: 1px solid #e9e9e9 !important;
&:hover { &:hover {
border: 1px solid #0065d8; // border: 1px solid #0065d8;
} }
&:focus { &:focus {
border: 1px solid #1c84fa; // border: 1px solid #1c84fa;
box-shadow: 0px 0px 8px #0a6bfc; // box-shadow: 0px 0px 8px #0a6bfc;
} }
} }
@ -240,7 +240,7 @@
} }
::v-deep .el-date-editor .el-range-separator { ::v-deep .el-date-editor .el-range-separator {
color: #fcfcfc; color: #333;
} }
::v-deep .el-input.is-disabled .el-input__inner { ::v-deep .el-input.is-disabled .el-input__inner {

View File

@ -263,6 +263,8 @@
right: 0px; right: 0px;
left: 0px; left: 0px;
background: #fff; background: #fff;
padding: 0 10px 10px;
box-sizing: border-box;
} }
} }
} }

View File

@ -97,14 +97,6 @@ div:focus {
border-color: rgb(8, 85, 170); border-color: rgb(8, 85, 170);
} }
::v-deep {
.el-input__inner, .el-input__inner:hover, .el-input__inner:focus {
border: none !important;
box-shadow: none;
background-color: transparent;
}
}
.new-btn-class-bj { .new-btn-class-bj {
color: #409eff; color: #409eff;
margin-right: 10px; margin-right: 10px;
@ -118,3 +110,11 @@ div:focus {
.new-btn-class-sc:hover { .new-btn-class-sc:hover {
border-bottom: 1px solid #f56c6c; border-bottom: 1px solid #f56c6c;
} }
::v-deep {
.el-input__inner, .el-input__inner:hover, .el-input__inner:focus {
border: none !important;
box-shadow: none;
background-color: transparent;
}
}

View File

@ -17,7 +17,7 @@ export function getDict(...args) {
getSysDictByCode({ getSysDictByCode({
dictCode: d dictCode: d
}).then(result => { }).then(result => {
result.itemList.forEach(p => { result?.itemList?.forEach(p => {
p.label = p.zdmc p.label = p.zdmc
p.value = p.dm p.value = p.dm
p.id = p.dm p.id = p.dm
@ -27,7 +27,7 @@ export function getDict(...args) {
} }
p.children = p.itemList p.children = p.itemList
}) })
res.value[d] = result.itemList res.value[d] = result?.itemList
}) })
}) })
return toRefs(res.value); return toRefs(res.value);

View File

@ -7,9 +7,43 @@
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<FormMessage ref="FormRef" v-model="listQuery" :disabled="true" :formList="formList"> <div style="padding: 2vw 10vw;box-sizing: border-box;">
<el-form :model="listQuery" ref="FormRef" label-width="120px" disabled>
<el-row class="peoRow" v-for="(item, index) in listQuery.pxkcList" :key="index">
<el-col :span="12">
<el-form-item label="培训日期" style="width: 100%;">
<el-date-picker v-model="item.pxrq" type="date" value-format="YYYY-MM-DD" placeholder="请输入培训日期" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训时间" style="width: 100%;">
<el-input v-model="item.pxsj" placeholder="请输入培训时间" style="width: 100%;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="课程名称" style="width: 100%;" >
<el-input v-model="item.kcmc" placeholder="请输入课程名称" style="width: 100%;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="组织单位" style="width: 100%;">
<el-input v-model="item.zzdw" placeholder="请输入组织单位" style="width: 100%;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="授课教员" style="width: 100%;">
<el-input v-model="item.skjy" placeholder="请选择授课教员" style="width: 100%;"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="培训内容" style="width: 100%;" >
<el-input v-model="item.pxnr" placeholder="请输入培训内容" style="width: 100%;"></el-input>
</el-form-item>
</el-col>
<el-divider /> <el-divider />
</FormMessage> </el-row>
</el-form>
</div>
<div style="padding:0 10vw 0 10vw;"> <div style="padding:0 10vw 0 10vw;">
<div class="table-title">培训保安人员</div> <div class="table-title">培训保安人员</div>
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
@ -24,48 +58,10 @@
<script setup> <script setup>
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import { qcckPost , qcckGet} from "@/api/qcckApi.js"; import { qcckPost , qcckGet} from "@/api/qcckApi.js";
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { ref, reactive,defineEmits,getCurrentInstance } from 'vue'; import { ref, reactive,defineEmits,getCurrentInstance } from 'vue';
const emit = defineEmits(["refresh"]); const emit = defineEmits(["refresh"]);
const dialogForm = ref(false); const dialogForm = ref(false);
const FormRef = ref(); const listQuery = ref({pxkcList:[]});
const listQuery = ref({});
const formList = reactive([
[
{ label: "培训日期", prop: "pxrq", type: "input" },
{ label: "培训时间", prop: "pxsj", type: "input" },
{ label: "课程名称", prop: "kcmc", type: "input" },
],
[
{ label: "组织单位", prop: "zzdw", type: "input" },
{ label: "授课教员", prop: "skfcy", type: "input" },
{ label: "培训内容", prop: "pxnr", type: "input" },
],
{ label: "分割线", prop: "diver", type: "slot" },
[
{ label: "培训日期", prop: "pxrq", type: "input" },
{ label: "培训时间", prop: "pxsj", type: "input" },
{ label: "课程名称", prop: "kcmc", type: "input" },
],
[
{ label: "组织单位", prop: "zzdw", type: "input" },
{ label: "授课教员", prop: "skfcy", type: "input" },
{ label: "培训内容", prop: "pxnr", type: "input" },
],
{ label: "分割线", prop: "diver", type: "slot" },
[
{ label: "培训日期", prop: "pxrq", type: "input" },
{ label: "培训时间", prop: "pxsj", type: "input" },
{ label: "课程名称", prop: "kcmc", type: "input" },
],
[
{ label: "组织单位", prop: "zzdw", type: "input" },
{ label: "授课教员", prop: "skfcy", type: "input" },
{ label: "培训内容", prop: "pxnr", type: "input" },
],
])
const pageData = reactive({ const pageData = reactive({
tableData: [], tableData: [],
keyCount: 0, keyCount: 0,
@ -84,17 +80,19 @@ const pageData = reactive({
] ]
}); });
// 初始化数据 // 初始化数据
const init = async (type, id) => { const init = async (type, id) => {
dialogForm.value = true; dialogForm.value = true;
const res = await qcckGet({ url: `/mosty-base/baxx/njpx/getInfo/${id}`}) const res = await qcckGet({},`/mosty-base/baxx/njpx/getInfo/${id}`)
listQuery.value = res || {} console.log(res,'=========');
listQuery.value.pxkcList = res.pxkcList || []
pageData.tableData = res.pxryList || []
}; };
const close = () => { const close = () => {
dialogForm.value = false; dialogForm.value = false;
FormRef.value.reset() listQuery.value.pxkcList = []
pageData.tableData = []
};; };;
defineExpose({init}) defineExpose({init})

View File

@ -22,7 +22,7 @@ import { ref, reactive,defineEmits,getCurrentInstance } from 'vue';
const emit = defineEmits(["refresh"]); const emit = defineEmits(["refresh"]);
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_BAXX_KTLX } = proxy.dict("D_BAXX_KTLX"); const { D_BAXX_KTLX } = proxy.$dict("D_BAXX_KTLX");
const dialogForm = ref(false); const dialogForm = ref(false);
const title = ref(''); const title = ref('');
@ -45,7 +45,7 @@ const rules = reactive({
const formList = reactive([ const formList = reactive([
[ [
{ label: "题型", prop: "type", type: "select", options: D_BAXX_KTLX }, { label: "题型", prop: "type", type: "select", options: D_BAXX_KTLX, },
{ label: "题目", prop: "tm", type: "input" }, { label: "题目", prop: "tm", type: "input" },
], ],
[ [

View File

@ -35,7 +35,7 @@
}"></Pages> }"></Pages>
</div> </div>
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" @refresh="getList" :dict="{ D_BAXX_KTLX }" /> <DetailForm ref="detailDiloag" @refresh="getList" />
</div> </div>
</template> </template>
@ -49,7 +49,6 @@ import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue"; import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_BAXX_KTLX } = proxy.$dict("D_BAXX_KTLX")
const detailDiloag = ref(); const detailDiloag = ref();
const searchBox = ref(); //搜索框 const searchBox = ref(); //搜索框
const baseUrl = 'data:image/jpeg;base64,' const baseUrl = 'data:image/jpeg;base64,'

View File

@ -46,7 +46,7 @@ const formList = reactive([
{ label: "教学目标", prop: "jxmb", type: "input" }, { label: "教学目标", prop: "jxmb", type: "input" },
], ],
[ [
{ label: "学时安排", prop: "gksc", type: "number" }, { label: "学时安排", prop: "gksc", type: "input" },
], ],
[ [
{ label: "上传附件", prop: "fj", type: "upload" }, { label: "上传附件", prop: "fj", type: "upload" },

View File

@ -8,8 +8,7 @@
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<FormMessage ref="FormRef" v-model="listQuery" :disabled="openType == 'detail'" :rules="rules" :formList="formList"> <FormMessage ref="FormRef" v-model="listQuery" :disabled="openType == 'detail'" :rules="rules" :formList="formList" />
</FormMessage>
</div> </div>
</div> </div>
</template> </template>

View File

@ -73,12 +73,13 @@ const handleClose = () => {
const handleSubmit = async () => { const handleSubmit = async () => {
try { try {
loading.value = true loading.value = true
await FormRef.value.submit() await FormRef.value.submit(async () => {
const { pxryid = "" } = formData.value const { pxryid = "" } = formData.value
await qcckPost({ ...formData.value, pxryid }, `mosty/base/baxx/pxry/lrcj`) await qcckPost({ ...formData.value, pxryid }, `mosty/base/baxx/pxry/lrcj`)
proxy.$message.success('上传成绩成功') proxy.$message.success('上传成绩成功')
emits('refresh') emits('refresh')
visible.value = false visible.value = false
})
} catch (error) { } catch (error) {
console.log(error) console.log(error)
proxy.$message.error('上传成绩失败') proxy.$message.error('上传成绩失败')

View File

@ -27,8 +27,8 @@
> >
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link v-if="!visible" @click="handleCertificate(row)">申请证件</el-link> <el-link v-if="!visible && row?.ksfs >= 60" @click="handleCertificate(row)">申请证件</el-link>
<template v-else> <template v-if="visible">
<el-link v-if="!row?.ksfs" type="primary" @click="addEdit('updata', row)">上传成绩</el-link> <el-link v-if="!row?.ksfs" type="primary" @click="addEdit('updata', row)">上传成绩</el-link>
<el-link v-else type="primary" @click="addEdit('view', row)">查看成绩</el-link> <el-link v-else type="primary" @click="addEdit('view', row)">查看成绩</el-link>
</template> </template>
@ -96,9 +96,9 @@ const pageData = reactive({
{ label: "姓名", prop: "xm" }, { label: "姓名", prop: "xm" },
{ label: "证件号码", prop: "sfzh" }, { label: "证件号码", prop: "sfzh" },
{ label: "联系方式", prop: "lxdh" }, { label: "联系方式", prop: "lxdh" },
{ label: "线上培训时间", prop: "sfzh" }, { label: "线上培训时间", prop: "xspxsc" },
{ label: "线下培训课程", prop: "lxdh" }, { label: "线下培训课程", prop: "xxpxsc" },
{ label: "考试成绩", prop: "lxdh" }, { label: "考试成绩", prop: "ksfs" },
] ]
}); });
@ -109,20 +109,21 @@ const close = () => {
} }
// 根据项目id获取培训人员 // 根据项目id获取培训人员
const getList = async ({ id = "" }) => { const getList = async ({ id = "" }, type = '') => {
const res = await qcckPost({ const res = await qcckPost({
...pageData.pageConfiger, ...pageData.pageConfiger,
// sfcjpx: 1, // sfcjpx: 1,
pxxmid: id ksglid: id
}, `/mosty-base/baxx/pxry/page`) }, `/mosty-base/baxx/ksry/list`)
if (res) { if (res) {
pageData.tableData = res.records || []; pageData.tableData = res.records || [];
pageData.total = res.total; pageData.total = res.total;
if (!type) emits("refresh");
} }
} }
const open = (row = {}, type = 'add') => { const open = (row = {}, type = 'add') => {
getList(row) getList(row, type)
disabled.value = false disabled.value = false
dialogVisible.value = true dialogVisible.value = true
formData.value = { ...row } formData.value = { ...row }

View File

@ -39,7 +39,7 @@ const props = defineProps({
} }
}) })
const emits = defineEmits(['update:modelValue']) const emits = defineEmits(['update:modelValue', 'refresh'])
const dialogVisible = computed({ const dialogVisible = computed({
get() { get() {
@ -66,7 +66,7 @@ const formList = reactive([
{ label: "身份证反面", prop: "ryzpfm", type: "upload", limit: 1 }, { label: "身份证反面", prop: "ryzpfm", type: "upload", limit: 1 },
], ],
[ [
{ label: "体检报告", prop: "", type: "upload", limit: 1 }, { label: "体检报告", prop: "tjbg", type: "upload", limit: 3 },
], ],
[ [
{ label: "无犯罪记录证明", prop: "wfzzmjl", type: "upload", limit: 1 }, { label: "无犯罪记录证明", prop: "wfzzmjl", type: "upload", limit: 1 },
@ -76,7 +76,7 @@ const formList = reactive([
const rules = { const rules = {
ryzpzm: [{ required: true, message: "请上传身份证正面", trigger: "change" }], ryzpzm: [{ required: true, message: "请上传身份证正面", trigger: "change" }],
ryzpfm: [{ required: true, message: "请上传身份证反面", trigger: "change" }], ryzpfm: [{ required: true, message: "请上传身份证反面", trigger: "change" }],
// tjbj: [{ required: true, message: "请上传体检报告", trigger: "change" }], tjbg: [{ required: true, message: "请上传体检报告", trigger: "change" }],
wfzzmjl: [{ required: true, message: "请上传无犯罪记录证明", trigger: "change" }], wfzzmjl: [{ required: true, message: "请上传无犯罪记录证明", trigger: "change" }],
xm: [{ required: true, message: "请输入姓名", trigger: "change" }], xm: [{ required: true, message: "请输入姓名", trigger: "change" }],
zjhm: [ zjhm: [
@ -122,11 +122,11 @@ const rules = {
const formData = ref({}) const formData = ref({})
const close = () => { const close = () => {
FormRef.value?.reset()
dialogVisible.value = false dialogVisible.value = false
} }
const open = (row = {}, type = 'add') => { const open = (row = {}, type = 'add') => {
FormRef.value?.reset()
disabled.value = false disabled.value = false
dialogVisible.value = true dialogVisible.value = true
formData.value = { ...row } formData.value = { ...row }

View File

@ -10,9 +10,12 @@
</template> </template>
<script setup> <script setup>
import { computed, ref, reactive } from 'vue'; import { computed, ref, reactive, getCurrentInstance } from 'vue';
import FormMessage from '@/components/aboutTable/FormMessage.vue' import FormMessage from '@/components/aboutTable/FormMessage.vue'
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_BAXX_DWLX } = proxy.$dict("D_BAXX_DWLX")
const props = defineProps({ const props = defineProps({
modelValue: { modelValue: {
type: Boolean, type: Boolean,
@ -20,7 +23,7 @@ const props = defineProps({
}, },
}) })
const emits = defineEmits(['update:modelValue']) const emits = defineEmits(['update:modelValue', 'refresh'])
const visible = computed({ const visible = computed({
get() { get() {
@ -39,35 +42,37 @@ const formData = ref({})
const formList = reactive([ const formList = reactive([
[ [
{ label: "培训公司", prop: "cj", type: "select" }, { label: "培训公司", prop: "pxgs", type: "select", options: D_BAXX_DWLX },
], ],
]) ])
const rules = { const rules = {
cj: [{ required: true, message: "请输入考试成绩", trigger: "change" }], pxgs: [{ required: true, message: "请输入考试成绩", trigger: "change" }],
jm: [{ required: true, message: "请输上传卷面", trigger: "change" }],
} }
const open = (row = {}, type = 'updata') => { const open = (row = {}, type = 'updata') => {
FormRef.value?.reset()
visible.value = true visible.value = true
disabled.value = false disabled.value = false
formData.value = { ...row } formData.value = { ...row }
} }
const handleClose = () => { const handleClose = () => {
FormRef.value?.reset()
visible.value = false visible.value = false
} }
const handleSubmit = () => { const handleSubmit = async () => {
try { try {
loading.value = true loading.value = true
FormRef.value.submit(res => { await FormRef.value.submit(async () => {
console.log(res) await qcckPost({ ...formData.value }, `/mosty-base/baxx/basq/edit`)
proxy.$message.success('培训公司保存成功')
emits('refresh')
visible.value = false visible.value = false
}) })
} catch (error) { } catch (error) {
console.log(error) console.log(error)
proxy.$message.error('培训公司保存失败')
} finally { } finally {
loading.value = false loading.value = false
} }

View File

@ -0,0 +1,82 @@
<template>
<el-dialog class="dialogWerapper" width="30%" v-model="modelValue" :title="title" @close="handleClose">
<form-message ref="FormRef" :disabled="disabled" v-model="formData" :rules="rules" :formList="formList" />
<template #footer>
<el-button type="primary" v-if="!disabled" :loading="loading" @click="handleSubmit">确定</el-button>
<el-button @click="handleClose">取消</el-button>
</template>
</el-dialog>
</template>
<script setup>
import { computed, ref, reactive, getCurrentInstance } from 'vue';
import FormMessage from '@/components/aboutTable/FormMessage.vue'
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_BAXX_DWLX } = proxy.$dict("D_BAXX_DWLX")
const props = defineProps({
modelValue: {
type: Boolean,
default: false
},
})
const emits = defineEmits(['update:modelValue', 'refresh'])
const visible = computed({
get() {
return props.modelValue
},
set(val) {
emits('update:modelValue', val)
}
})
const title = ref('上传资料')
const loading = ref(false)
const disabled = ref(false)
const FormRef = ref(null)
const formData = ref({})
const formList = reactive([
[
{ label: "上传资料", prop: "zl", type: "upload", limit: 3 },
],
])
const rules = {
zl: [{ required: true, message: "请上传资料", trigger: "change" }],
}
const open = (row = {}, type = 'updata') => {
visible.value = true
disabled.value = false
formData.value = { ...row }
}
const handleClose = () => {
FormRef.value?.reset()
visible.value = false
}
const handleSubmit = async () => {
try {
loading.value = true
await FormRef.value.submit(async () => {
await qcckPost({ ...formData.value }, `/mosty-base/baxx/basq/edit`)
proxy.$message.success('上传资料成功')
emits('refresh')
visible.value = false
})
} catch (error) {
console.log(error)
proxy.$message.error('上传资料失败')
} finally {
loading.value = false
}
}
defineExpose({ open })
</script>

View File

@ -12,12 +12,15 @@
<div class="tabBox"> <div class="tabBox">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"> :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #pxgs="{ row }">
{{ row?.pxgs === '01' ? `` : `` }}
</template>
<template #sfpx="{ row }"> <template #sfpx="{ row }">
{{ row?.sfpx === '01' ? `` : `` }} {{ row?.sfpx === '01' ? `` : `` }}
</template> </template>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link type="success" @click="addEdit('upload', row)">上传资料</el-link> <el-link type="success" v-if="row?.pxgs !== '01'" @click="addEdit('upload', row)">上传资料</el-link>
<el-link type="danger" @click="handleDelete([row.id])">删除</el-link> <el-link type="danger" @click="handleDelete([row.id])">删除</el-link>
<el-link type="warning" @click="addEdit('view', row)">详情</el-link> <el-link type="warning" @click="addEdit('view', row)">详情</el-link>
<el-link type="primary" @click="addEdit('select', row)">提交培训公司</el-link> <el-link type="primary" @click="addEdit('select', row)">提交培训公司</el-link>
@ -31,7 +34,8 @@
<add-trainer-dialog v-model="isVisible" ref="trainerRef" @refresh="getList" /> <add-trainer-dialog v-model="isVisible" ref="trainerRef" @refresh="getList" />
<select-ttaning-dialog ref="selectTtaningRef" v-model="dialogVisible" /> <select-ttaning-dialog ref="selectTtaningRef" v-model="dialogVisible" @refresh="getList" />
<upload-data-dialog ref="uploadDataRef" v-model="uploadVisible" @refresh="getList" />
</div> </div>
</template> </template>
@ -43,13 +47,16 @@ import Search from '@/components/aboutTable/Search.vue';
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import AddTrainerDialog from "./components/addTrainerDialog.vue"; import AddTrainerDialog from "./components/addTrainerDialog.vue";
import UploadDataDialog from "./components/uploadDataDialog.vue";
import selectTtaningDialog from "./components/selectTtaningDialog.vue"; import selectTtaningDialog from "./components/selectTtaningDialog.vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const trainerRef = ref(null); const trainerRef = ref(null);
const selectTtaningRef = ref(null); const selectTtaningRef = ref(null);
const uploadDataRef = ref(null);
const queryFrom = ref({}); const queryFrom = ref({});
const isVisible = ref(false); const isVisible = ref(false);
const uploadVisible = ref(false);
const dialogVisible = ref(false); const dialogVisible = ref(false);
const searchBox = ref(null); const searchBox = ref(null);
const searchConfiger = ref([ const searchConfiger = ref([
@ -93,7 +100,7 @@ const pageData = reactive({
{ label: "联系方式", prop: "lxdh" }, { label: "联系方式", prop: "lxdh" },
{ label: "岗位", prop: "gw" }, { label: "岗位", prop: "gw" },
{ label: "申请时间", prop: "xtCjsj" }, { label: "申请时间", prop: "xtCjsj" },
{ label: "是否上传资料", prop: "pxgs" }, { label: "是否上传资料", prop: "pxgs", showSolt: true },
{ label: "是否线上培训", prop: "sfpx", showSolt: true }, { label: "是否线上培训", prop: "sfpx", showSolt: true },
] ]
}); });
@ -110,10 +117,11 @@ const tabHeightFn = () => {
const addEdit = (type, row) => { const addEdit = (type, row) => {
if (type === 'select') { if (type === 'select') {
selectTtaningRef.value.open(row, type); selectTtaningRef.value.open(row, type);
return } else if (type === 'upload') {
} uploadDataRef.value.open(row, type);
} else {
trainerRef.value.open(row, type); trainerRef.value.open(row, type);
}
}; };
const onSearch = (value) => { const onSearch = (value) => {
@ -143,11 +151,9 @@ const handleDelete = async (ids) => {
await proxy.$modal.confirm("是否确认删除该培训人员?") await proxy.$modal.confirm("是否确认删除该培训人员?")
try { try {
const res = await qcckDelete({ ids }, `/mosty-base/baxx/basq/delete`) await qcckPost({ ids }, `/mosty-base/baxx/basq/remove`)
if (res) {
proxy.$modal.msgSuccess("删除成功"); proxy.$modal.msgSuccess("删除成功");
await getList(); await getList();
}
} catch (error) { } catch (error) {
proxy.$modal.msgError("删除失败"); proxy.$modal.msgError("删除失败");
} }

View File

@ -36,7 +36,7 @@ const props = defineProps({
}, },
}) })
const emits = defineEmits(['update:modelValue']) const emits = defineEmits(['update:modelValue', 'refresh'])
const dialogVisible = computed({ const dialogVisible = computed({
get() { get() {
@ -69,7 +69,7 @@ const formList = reactive([
[ [
{ label: "外派单位", prop: "wpdw", type: "input" }, { label: "外派单位", prop: "wpdw", type: "input" },
], ],
{ label: "从业人员照片", prop: "", type: "upload", limit: 2 }, { label: "从业人员照片", prop: "tp", type: "upload", limit: 2 },
{ label: "保安证件", prop: "bazzp", type: "upload", limit: 1 }, { label: "保安证件", prop: "bazzp", type: "upload", limit: 1 },
]) ])

View File

@ -12,9 +12,9 @@
<el-descriptions-item label="姓名">{{ formData.xm }}</el-descriptions-item> <el-descriptions-item label="姓名">{{ formData.xm }}</el-descriptions-item>
<el-descriptions-item label="身份证号">{{ formData.sfzh }}</el-descriptions-item> <el-descriptions-item label="身份证号">{{ formData.sfzh }}</el-descriptions-item>
<el-descriptions-item label="联系电话">{{ formData.lxdh }}</el-descriptions-item> <el-descriptions-item label="联系电话">{{ formData.lxdh }}</el-descriptions-item>
<el-descriptions-item label="所属保安公司"></el-descriptions-item> <el-descriptions-item label="所属保安公司">{{ formData.ssbags }}</el-descriptions-item>
<el-descriptions-item label="线上培训时长">{{ formData.pxsc }}</el-descriptions-item> <el-descriptions-item label="线上培训时长">{{ formData.pxsc }}</el-descriptions-item>
<el-descriptions-item label="提交日期"></el-descriptions-item> <el-descriptions-item label="提交日期">{{ formData.tjrq }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</div> </div>
</div> </div>

View File

@ -35,7 +35,7 @@
</template> </template>
<script setup> <script setup>
import { onMounted, reactive, ref } from "vue"; import { onMounted, reactive, ref, getCurrentInstance } from "vue";
import MyTable from '@/components/aboutTable/MyTable.vue'; import MyTable from '@/components/aboutTable/MyTable.vue';
import Pages from '@/components/aboutTable/Pages.vue'; import Pages from '@/components/aboutTable/Pages.vue';
import Search from '@/components/aboutTable/Search.vue'; import Search from '@/components/aboutTable/Search.vue';
@ -43,6 +43,8 @@ import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import viewInfoDialog from "./components/viewInfoDialog.vue"; import viewInfoDialog from "./components/viewInfoDialog.vue";
const { proxy } = getCurrentInstance();
const { D_BAXX_DWLX } = proxy.$dict("D_BAXX_DWLX")
const trainerRef = ref(null); const trainerRef = ref(null);
const queryFrom = ref({}); const queryFrom = ref({});
const isVisible = ref(false); const isVisible = ref(false);
@ -63,20 +65,21 @@ const searchConfiger = ref([
}, },
{ {
label: "所属保安公司", label: "所属保安公司",
prop: "", prop: "ssbags",
placeholder: "请选择所属保安公司", placeholder: "请选择所属保安公司",
showType: "select" showType: "select",
options: D_BAXX_DWLX
}, },
{ {
label: "提交日期", label: "提交日期",
prop: "", prop: "tjrq",
placeholder: "请选择提交日期", placeholder: "请选择提交日期",
showType: "date" showType: "date"
} }
]); ]);
const pageData = reactive({ const pageData = reactive({
tableData: [{}], tableData: [],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,
@ -94,7 +97,7 @@ const pageData = reactive({
{ label: "姓名", prop: "xm" }, { label: "姓名", prop: "xm" },
{ label: "身份证号", prop: "sfzh" }, { label: "身份证号", prop: "sfzh" },
{ label: "联系方式", prop: "lxdh" }, { label: "联系方式", prop: "lxdh" },
{ label: "所属保安公司", prop: "" }, { label: "所属保安公司", prop: "ssbags" },
{ label: "线上培训时长", prop: "pxsc" }, { label: "线上培训时长", prop: "pxsc" },
{ label: "提交日期", prop: "" }, { label: "提交日期", prop: "" },
] ]

View File

@ -41,7 +41,7 @@ const props = defineProps({
} }
}) })
const emits = defineEmits(['update:modelValue']) const emits = defineEmits(['update:modelValue', 'refresh'])
const dialogVisible = computed({ const dialogVisible = computed({
get() { get() {
@ -59,21 +59,22 @@ const formList = reactive([
{ label: "联系电话", prop: "lxdh", type: "input" }, { label: "联系电话", prop: "lxdh", type: "input" },
], ],
[ [
{ label: "居住地址", prop: "", type: "input" }, { label: "居住地址", prop: "jzdz", type: "input" },
{ label: "申请时间", prop: "", type: "date" }, { label: "申请时间", prop: "sqsj", type: "date" },
{ label: "岗位", prop: "", type: "select" }, { label: "岗位", prop: "gw", type: "select" },
], ],
[ [
{ label: "所属保安公司", prop: "", type: "select" }, { label: "所属保安公司", prop: "ssbags", type: "select" },
], ],
[ [
{ label: "身份证正面", prop: "", type: "upload", limit: 2 }, { label: "身份证正面", prop: "ryzpzm", type: "upload", limit: 1 },
{ label: "身份证反面", prop: "ryzpfm", type: "upload", limit: 1 },
], ],
[ [
{ label: "体检报告", prop: "", type: "upload", limit: 1 }, { label: "体检报告", prop: "tjbg", type: "upload", limit: 1 },
], ],
[ [
{ label: "无犯罪记录证明", prop: "", type: "upload", limit: 1 }, { label: "无犯罪记录证明", prop: "wfzjlzm", type: "upload", limit: 1 },
] ]
]) ])
@ -89,11 +90,11 @@ const rules = {
const formData = ref({}) const formData = ref({})
const close = () => { const close = () => {
FormRef.value?.reset()
dialogVisible.value = false dialogVisible.value = false
} }
const open = (row = {}, type = 'add') => { const open = (row = {}, type = 'add') => {
FormRef.value?.reset()
disabled.value = false disabled.value = false
dialogVisible.value = true dialogVisible.value = true
formData.value = { ...row } formData.value = { ...row }

View File

@ -86,8 +86,8 @@ const pageData = reactive({
{ label: "姓名", prop: "xm" }, { label: "姓名", prop: "xm" },
{ label: "证件号码", prop: "sfzh" }, { label: "证件号码", prop: "sfzh" },
{ label: "联系方式", prop: "lxdh" }, { label: "联系方式", prop: "lxdh" },
{ label: "岗位", prop: "" }, { label: "岗位", prop: "gw" },
{ label: "所属保安公司", prop: "" }, { label: "所属保安公司", prop: "ssbags" },
] ]
}); });