Merge pull request 'feat:完成了6个搜索form,完成了table中工单号,工单名称等添加,完成了关闭与删除的box弹窗,正在封装详情Edit组件' (#12) from wxy into master

Reviewed-on: http://git.feashow.cn/feashow/SmartOpsWeb/pulls/12
This commit is contained in:
springlog
2024-09-10 18:09:44 +00:00
3 changed files with 219 additions and 32 deletions

View File

@@ -33,7 +33,7 @@
<el-button v-if="searchConfig.length>=4" link type="primary" @click="showMore = !showMore"> <el-button v-if="searchConfig.length>=4" link type="primary" @click="showMore = !showMore">
{{ showMore ? '收起' : '展开' }} {{ showMore ? '收起' : '展开' }}
</el-button> </el-button>
<el-button type="primary" @click="getValues" :icon="Search">搜索</el-button> <el-button type="primary" @click="getValues" :icon="Search">查询</el-button>
<el-button @click="handleReset" :icon="Refresh">重置</el-button> <el-button @click="handleReset" :icon="Refresh">重置</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>

View File

@@ -1,16 +1,20 @@
<template> <template>
<fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm> <fvSearchForm :searchConfig="searchConfig" @search="search"></fvSearchForm>
<fvTable ref="tableIns" :tableConfig="tableConfig" :data="mockData" @headBtnClick="headBtnClick"></fvTable> <fvTable ref="tableIns" :tableConfig="tableConfig" :data="mockData" @headBtnClick="headBtnClick"></fvTable>
<WorkEdit ref="workEditRef"></WorkEdit>
</template> </template>
<script setup lang="jsx"> <script setup lang="jsx">
import WorkEdit from '../components/WorkEdit.vue';
const workEditRef = ref()
const router = useRouter() const router = useRouter()
const tableIns = ref() const tableIns = ref()
//todo 外部模拟数据, 接口一出来, 直接在下方 tableConfig 的api处填写就行 //todo 外部模拟数据, 接口一出来, 直接在下方 tableConfig 的api处填写就行
const mockData = ref([ const mockData = ref([
{ {
workOrderNumber: 1211, workOrderNumber: 1211,
workOrderTime: '2022-02-09 00 : 12',
state: 0, state: 0,
callState: 0 callState: 0
}, },
@@ -18,7 +22,7 @@ const mockData=ref([
workOrderNumber: 232, workOrderNumber: 232,
state: 1, state: 1,
callState: 1 callState: 1
}, }
]) ])
const auths = reactive({ const auths = reactive({
report: ['mosr:collect:reported'], report: ['mosr:collect:reported'],
@@ -33,8 +37,73 @@ const searchConfig = reactive([
checkStrictly: true checkStrictly: true
}, },
component: 'el-input', component: 'el-input',
}, {
label: '工单名称',
prop: 'requirementName',
props: {
placeholder: '请输入工单名查询',
clearable: true,
checkStrictly: true
}, },
component: 'el-input',
}, {
label: '工单状态',
prop: 'requirementName',
props: {
placeholder: '请输入工单状态查询',
clearable: true,
checkStrictly: true
},
component: 'el-input',
}, {
label: '处理人',
prop: 'requirementName',
props: {
placeholder: '请输入处理人查询',
clearable: true,
checkStrictly: true
},
component: 'el-input',
}, {
label: '关单人',
prop: 'requirementName',
props: {
placeholder: '请输入关单人查询',
clearable: true,
checkStrictly: true
},
component: 'el-input',
},
{
label: '创建日期',
prop: 'requirementName',
props: {
placeholder: '',
clearable: true,
checkStrictly: true
},
component: 'el-date-picker',
}, {
label: '处理时间',
prop: 'requirementName',
props: {
placeholder: '',
clearable: true,
checkStrictly: true
},
component: 'el-date-picker',
}, {
label: '完成时间',
prop: 'requirementName',
props: {
placeholder: '',
clearable: true,
checkStrictly: true
},
component: 'el-date-picker',
}
]) ])
const tableConfig = reactive({ const tableConfig = reactive({
columns: [ columns: [
{ {
@@ -49,6 +118,16 @@ const tableConfig = reactive({
label: '工单号', label: '工单号',
align: 'center' align: 'center'
}, },
{
prop: 'workOrderNumber',
label: '工单名称',
align: 'center'
},
{
prop: 'workOrderNumber',
label: '工单内容',
align: 'center'
},
{ {
prop: 'state', prop: 'state',
label: '工单状态', label: '工单状态',
@@ -75,6 +154,34 @@ const tableConfig = reactive({
} }
} }
}, },
{
prop: 'workOrderNumber',
label: '处理人',
align: 'center'
},
{
prop: 'workOrderNumber',
label: '处理内容',
align: 'center'
},
{
prop: 'workOrderTime',
label: '创建时间',
align: 'center',
width: 200
},
{
prop: 'workOrderTime',
label: '处理时间',
align: 'center',
width: 200
},
{
prop: 'workOrderTime',
label: '完成时间',
align: 'center',
width: 200
},
{ {
prop: 'oper', prop: 'oper',
label: '操作', label: '操作',
@@ -85,6 +192,8 @@ const tableConfig = reactive({
currentRender: ({ row, index }) => { currentRender: ({ row, index }) => {
let btn = [] let btn = []
btn.push({ label: '详情', prem: auths.detail, func: () => handleDetail(row), type: 'primary' }) btn.push({ label: '详情', prem: auths.detail, func: () => handleDetail(row), type: 'primary' })
btn.push({ label: '关单', prem: auths.detail, func: () => handleClose(row), type: 'primary' })
btn.push({ label: '删除', prem: auths.detail, func: () => handleDelete(row), type: 'primary' })
return ( return (
<div style={{ width: '100%' }}> <div style={{ width: '100%' }}>
{ {
@@ -111,14 +220,66 @@ const tableConfig = reactive({
] ]
}) })
const headBtnClick = (key) => { const headBtnClick = (key) => {
console.log(key);
switch (key) { switch (key) {
case 'add': case 'add':
handleAdd() handleAdd()
break; break;
} }
} }
const handleDetail = (row) => {
workEditRef.value.open(row)
}
const handleClose = (row) => {
ElMessageBox.confirm(
'确定要关单吗?',
'温馨提示',
{
confirmButtonText: 'OK',
cancelButtonText: 'Cancel',
type: 'warning',
}
)
.then(() => {
ElMessage({
type: 'success',
message: '关闭成功',
})
})
.catch(() => {
ElMessage({
type: 'info',
message: '关闭失败',
})
})
}
const handleDelete = (row) => {
ElMessageBox.confirm(
'确定要删除吗?',
'温馨提示',
{
confirmButtonText: 'OK',
cancelButtonText: 'Cancel',
type: 'warning',
}
)
.then(() => {
ElMessage({
type: 'success',
message: '删除成功',
})
})
.catch(() => {
ElMessage({
type: 'info',
message: '删除失败',
})
})
}
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@@ -0,0 +1,26 @@
<script setup>
import { ref } from 'vue';
import { ElDrawer } from 'element-plus'
//控制显示隐藏
const visible = ref(false)
const open = (row) => {
visible.value = true
console.log(111);
console.log(row);
}
defineExpose({
open
})
</script>
<template>
<el-drawer v-model="visible"
size="50%"
title="工单详情" :direction="direction" :before-close="handleClose">
<span>Hi, there!</span>
</el-drawer>
</template>
<style lang="scss" scoped></style>