424 lines
9.1 KiB
Vue
Raw Normal View History

2025-02-25 17:30:50 +08:00
<template>
2025-02-28 16:45:42 +08:00
<CustomCard>
<avue-crud
2025-03-05 17:30:00 +08:00
ref="crudRef"
2025-02-28 16:45:42 +08:00
v-model:page="page"
v-model:search="searchData"
:option="option"
:data="data"
:table-loading="_loading"
@current-change="handlePageChange"
@size-change="handleSizeChange"
@search-change="handleSearch"
@row-save="handleRowSave"
2025-03-05 17:30:00 +08:00
@row-update="handleExamine"
2025-02-28 16:45:42 +08:00
>
<template #menu="{ row }">
<el-button type="primary" @click="handleInfo(row)">登记处理</el-button>
</template>
2025-03-05 17:30:00 +08:00
<template #sceneProof-form>
<section>
<span>照片视频</span>
</section>
</template>
<template #attrs_-form>
<FileUpload v-model:list="examineForm.attrs" :format="['rar', 'zip', 'doc', 'docx', 'pdf']" />
</template>
2025-02-28 16:45:42 +08:00
</avue-crud>
</CustomCard>
<Register v-model:visible="caseInfo.visible" />
2025-02-25 17:30:50 +08:00
</template>
2025-02-28 16:45:42 +08:00
<script setup>
2025-03-05 17:30:00 +08:00
import { ref, reactive, h } from 'vue';
2025-02-28 16:45:42 +08:00
import { CRUD_OPTIONS } from '@/config';
import CustomCard from '@/components/CustomCard.vue';
import { useUserStore } from '@/store/modules/user';
import Register from './common/Register.vue';
2025-03-05 17:30:00 +08:00
import FileUpload from './common/FileUpload.vue';
2025-02-28 16:45:42 +08:00
const { VITE_APP_BASE_API } = import.meta.env;
const UserStore = useUserStore();
2025-02-25 17:30:50 +08:00
/* --------------- data --------------- */
// #region
2025-03-05 17:30:00 +08:00
const crudRef = ref();
2025-02-28 16:45:42 +08:00
const searchData = ref({
2025-03-05 17:30:00 +08:00
caseNum: '',
2025-02-28 16:45:42 +08:00
process: '',
});
const page = ref({
currentPage: 1,
pageSize: 10,
total: 3,
});
const _loading = ref(false);
const data = ref([
{
2025-03-05 17:30:00 +08:00
id_: '1',
caseNum: '111111111',
2025-02-28 16:45:42 +08:00
name: '张三',
unit: '123333333333333333333333333333',
owner: '张三',
process: '北京',
date: '2020-02-02',
},
{
2025-03-05 17:30:00 +08:00
id_: '2',
caseNum: '222222222',
2025-02-28 16:45:42 +08:00
name: '张三',
unit: '123333333333333333333333333333',
owner: '张三',
process: '北京',
date: '2020-02-02',
},
{
2025-03-05 17:30:00 +08:00
id_: '3',
caseNum: '333333333333',
2025-02-28 16:45:42 +08:00
name: '张三',
unit: '123333333333333333333333333333',
owner: '张三',
process: '北京',
date: '2020-02-02',
},
]);
const option = ref({
...CRUD_OPTIONS,
refreshBtn: false,
2025-03-05 17:30:00 +08:00
editTitle: '案件登记处理',
2025-02-28 16:45:42 +08:00
column: [
{
label: '案件编号',
2025-03-05 17:30:00 +08:00
prop: 'caseNum',
2025-02-28 16:45:42 +08:00
search: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '案件名称',
prop: 'name',
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '关联单位',
prop: 'unit',
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '关联土地·',
prop: 'land',
type: 'select',
addDisplay: true,
hide: true,
dicUrl: `${VITE_APP_BASE_API}/land-resource/landManage/page`,
dicQuery: {
current: 1,
size: 9999,
},
props: {
value: 'id',
label: 'landName',
},
dicMethod: 'get',
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res?.data?.records ?? [],
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '联系电话',
prop: 'phone',
hide: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '法定代表人',
prop: 'onwer',
addDisplay: true,
hide: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '统一社会信用代码',
prop: 'code',
addDisplay: true,
hide: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '违法情况',
prop: 'illegal',
type: 'textarea',
addDisplay: true,
hide: true,
width: '100%',
span: 24,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '负责人',
prop: 'owner',
display: false,
addDisplay: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '案件进度',
prop: 'process',
display: false,
search: true,
addDisplay: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '案件结果',
prop: 'result',
display: false,
addDisplay: true,
2025-03-05 17:30:00 +08:00
editDisplay: false,
viewDisplay: false,
2025-02-28 16:45:42 +08:00
},
{
label: '处理时间',
prop: 'date',
display: false,
addDisplay: false,
editDisplay: true,
2025-03-05 17:30:00 +08:00
viewDisplay: false,
},
],
group: [
{
label: '案件信息>',
prop: 'caseInfo',
addDisplay: false,
column: [
{
label: '案件名称',
prop: 'name',
render: ({ row }) => {
return h('span', {}, row.name);
},
},
{
label: '案件编号',
prop: 'caseNum',
render: ({ row }) => {
return h('span', {}, row.caseNum);
},
},
{
label: '关联单位',
prop: 'unit',
render: ({ row }) => {
return h('span', {}, row.unit);
},
},
{
label: '关联地块',
prop: 'land',
render: ({ row }) => {
return h('span', {}, row.land);
},
},
{
label: '法定代表人',
prop: 'onwer',
render: ({ row }) => {
return h('span', {}, row.onwer);
},
},
{
label: '联系电话',
prop: 'phone',
render: ({ row }) => {
return h('span', {}, row.phone);
},
},
{
label: '统一社会信用代码',
prop: 'code',
span: 24,
render: ({ row }) => {
return h('span', {}, row.code);
},
},
{
label: '违法情况',
prop: 'result',
span: 24,
render: ({ row }) => {
return h('span', {}, row.result);
},
},
],
},
{
label: '案件处理>',
prop: 'caseHandle',
addDisplay: false,
column: [
{
label: '案情记录',
prop: 'caseRecords',
type: 'textarea',
span: 24,
display: true,
editDisplay: true,
},
{
label: '现场取证',
prop: 'sceneProof',
span: 24,
display: true,
editDisplay: true,
},
{
label: '执法文书',
prop: 'document',
labelSuffix: '件',
span: 24,
display: true,
type: 'radio',
editDisplay: true,
dicData: [
{
label: '协助调查函',
value: 0,
},
{
label: '抽样取样凭证',
value: 1,
},
{
label: '检测报告',
value: 2,
},
{
label: '其他文书',
value: 3,
},
],
},
{
label: '',
prop: 'attrs_',
},
],
},
{
label: '处理结果>',
prop: 'caseResult_',
addDisplay: false,
column: [
{
label: '案件处理结果',
prop: 'caseResult',
type: 'radio',
value: 0,
dicData: [
{
label: '正常营业,无违规行为',
value: 0,
},
{
label: '简易程序,当场行政处罚',
value: 1,
},
{
label: '普通程序,当场处罚立案审批',
value: 2,
},
{
label: '移送程序,案件移送',
value: 3,
},
{
label: '特殊程序,案件终止',
value: 4,
},
],
span: 24,
display: true,
editDisplay: true,
},
],
2025-02-28 16:45:42 +08:00
},
],
});
const caseInfo = ref({
visible: false,
});
2025-03-05 17:30:00 +08:00
const examineForm = reactive({
record: '',
proof: [],
document: 1,
attrs: [],
result: 1,
});
2025-02-25 17:30:50 +08:00
// #endregion
/* --------------- methods --------------- */
2025-02-28 16:45:42 +08:00
// #region
function handlePageChange(val) {
console.log('page', val);
page.value.currentPage = val;
}
function handleSizeChange(val) {
page.value.pageSize = val;
console.log('size', val, page.value);
}
function handleInfo(row) {
console.log('row', row);
2025-03-05 17:30:00 +08:00
// caseInfo.value.visible = true;
crudRef.value.rowEdit(row);
// crudRef.value.rowView(row);
2025-02-28 16:45:42 +08:00
}
function handleSearch(form, done) {
console.log('search', form);
let t = setTimeout(() => {
clearTimeout(t);
done();
}, 1000);
}
function handleRowSave(val, done, loading) {
console.log('val', val);
console.log('done', done);
console.log('loading', loading);
loading();
let t = setTimeout(() => {
clearTimeout(t);
done();
}, 1000);
}
2025-03-05 17:30:00 +08:00
function handleExamine(val, done, loading) {
console.log('val', val);
console.log('done', done);
console.log('loading', loading);
loading();
}
2025-02-25 17:30:50 +08:00
// #endregion
</script>
2025-03-05 17:30:00 +08:00
<style lang="scss" scoped>
::v-deep() {
.attrs_ {
.el-form-item__label {
opacity: 0;
}
}
}
</style>