master
lion 2 years ago
parent 48db3c4a18
commit 9cbf549508

@ -144,6 +144,7 @@ export default {
if(form.hasOwnProperty(key) && $scopedSlots[key]){
formItems.push(
<el-form-item
class={key}
prop={key}>
{eval(`{$scopedSlots.${key} ? $scopedSlots.${key}() : ''}`)}
</el-form-item>

@ -8,6 +8,7 @@ export const domMap = new Map([
["file","el-upload"],
["files","el-upload"],
["textarea", "el-input"],
["placeholdertext","div"],
["map", "my-map"],

@ -67,6 +67,9 @@ export class CreateDialog {
}
optionsRender(h, info) {
let that = this.self;
if(info.edit_input==='placeholdertext'){
return info.placeholdertext
}
if (info.edit_input === "checkbox" || info.edit_input === "radio") {
return info._params && info._params instanceof Array
? info._params.map((i) =>
@ -173,7 +176,7 @@ export class CreateDialog {
},
props: {
model: that.form,
labelWidth: "80px",
labelWidth: "120px",
rules: that.rules,
labelPosition: "right",
size: "small",
@ -194,6 +197,7 @@ export class CreateDialog {
style: {
width: "100%",
},
class:i.field,
props: {
label: i.name,
prop: i.field,

@ -1,5 +1,6 @@
<script>
import { index as typeIndex } from "@/api/categoryType";
import { index as formIndex } from "@/api/system/customForm";
import { save, show, store, index, destroy } from "@/api/category";
import { CreateDialog } from "@/utils/createDialog"
import { deepCopy } from "@/utils";
@ -10,7 +11,7 @@ export default {
render(h) {
let dialog = new CreateDialog(this,[
],{
width: "500px"
width: "60%"
})
return dialog.render()
},
@ -31,6 +32,25 @@ export default {
}
}
},
{
name: "表单",
field: "form_id",
edit_input: "radio",
form_show: true,
_params: []
},
{
name: '填报要求',
field: 'require',
edit_input: 'text',
form_show: true,
_props: {
type: "textarea",
autoSize: {
minRows: 4
}
}
},
{
name: '父栏目',
field: 'pid',
@ -333,6 +353,9 @@ export default {
typeIndex({ page: 1,page_size: 999 }).then(res => {
this.formInfo.find(i => i.field === 'type_id')._params = res.data
})
formIndex({ page: 1,page_size: 999 }).then(res => {
this.formInfo.find(i => i.field === 'form_id')._params = res.data
})
}
};
</script>

@ -0,0 +1,223 @@
<template>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" text="填报查看" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<slot>
</slot>
</lx-header>
</div>
<div class="wrapper">
<div style="padding:15px">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane v-for="(item,index) in categoryTypeList" :label="item.title" :name="index+'查看'">
<div></div>
</el-tab-pane>
</el-tabs>
<el-radio-group v-model="select.year">
<el-radio v-for="item in years" :label="item">{{item}}</el-radio>
</el-radio-group>
</div>
<xy-table ref="xyTable"
:is-page="false"
:table-item="table"
:list="list"
:indent="20"
:row-key="row => row.id"
>
<template #btns>
<el-table-column align='center' label="操作" width="100" header-align="center">
<template slot-scope="scope">
<template v-if="scope.row._type === 'doc'">
<Button type="primary" style='margin-right:5px;margin-bottom:5px;' size="small" @click="getDetail"></Button>
</template>
</template>
</el-table-column>
</template>
</xy-table>
</div>
</div>
</template>
<script>
import {
index as getCategory
} from "@/api/category"
import {
index
} from "@/api/categoryType"
import headerContent from "@/components/LxHeader/XyContent.vue";
import LxHeader from "@/components/LxHeader/index.vue";
export default {
components: {
headerContent,
LxHeader
},
data() {
return {
activeName: "0查看",
categoryTypeList: [],
years: [],
select: {
page: 1,
page_size: 999,
year: this.$moment().format('YYYY')
},
list: [],
table: [{
type: "",
label: "",
prop: "index",
customFn:row => {
return row._type === 'type' ? row._text : row._index;
}
},
{
prop: "title",
label: "清单类型名称",
align: "left",
customFn:row => {
return row._type === 'type' ? (<span><i style="padding: 0 8px;color: rgb(239, 216, 117);" class="el-icon-folder-opened"></i><span>{row.title}</span></span>) : (
<span><i style="padding: 0 8px;" class="el-icon-document"></i><span>{row.title}</span></span>)
}
},
{
label: "年份",
prop: "year",
width:120,
customFn:row => {
return row._type === 'type' ? '--' : row.year;
}
},
{
label: "当前逾期",
prop: "",
width:120,
},
{
prop: "records_count",
label: "填报数量",
width:120,
customFn:row => {
if (!row.children?.length) {
return (<span>{row.records_count}</span>)
}
}
},
]
}
},
created() {
this.getCategoryTypeList()
this.getSelectYear()
this.getCategoryList()
},
methods: {
async getCategoryTypeList() {
const res = await index({
page: 1,
page_size: 999
})
this.categoryTypeList = res.data
},
async getCategoryList(){
let res = await getCategory()
this.formatList(res);
this.list = res;
},
getDetail(row,scope){
},
getSelectYear() {
const currentYear = this.$moment().format('YYYY');
const years = [];
for (let i = currentYear; i >= 2017; i--) {
years.push(i);
}
this.years = years
},
toChineseNum(number) {
const chineseNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
const chineseUnit = ["", "十", "百", "千", "万", "亿"];
let numStr = number.toString();
let len = numStr.length;
let str = "";
for (let i = 0; i < len; i++) {
str += chineseNum[parseInt(numStr[i])] + chineseUnit[len - 1 - i];
}
str = str.replace(/零[十百千]/g, "零");
str = str.replace(/零+/g, "零");
str = str.replace(/^零+/, "");
str = str.replace(/零+$/, "");
if (str[str.length - 1] === "零") {
str = str.slice(0, -1);
}
return str
},
formatList (data=[],pid) {
data.forEach((item,index) => {
if (item.hasOwnProperty('categories_tree')) {
item._id = item.id
delete item.id;
item._disabled = true
item._type = 'type'
item.children = item.categories_tree
item._text = this.toChineseNum(index+1)
} else {
item._type = 'doc'
item._index = pid ? `${pid}-${index+1}` : (index+1)
}
if (item.children instanceof Array && item.children.length > 0) {
this.formatList(item.children,item._index ? item._index : false)
}
})
},
handleClick() {},
},
computed: {},
}
</script>
<style scoped lang="scss">
.wrapper{
background-color: #fff;
}
::v-deep .el-radio__input.is-checked+.el-radio__label {
color: #c4312b;
}
::v-deep .el-radio__input.is-checked .el-radio__inner {
background-color: #c4312b;
border-color: #c4312b;
}
::v-deep .el-radio__inner{
width:18px;
height:18px;
}
::v-deep .el-radio__input.is-checked .el-radio__inner:after {
content: '';
width: 12px;
height: 6px;
margin-top:-1px;
border: 2px solid white;
border-top: transparent;
border-right: transparent;
text-align: center;
display: block;
position: absolute;
top: 50%;
left: 50%;
vertical-align: middle;
transform: translate(-50%, -50%) rotate(-45deg);
border-radius: 0px;
background: none;
}
::v-deep .el-tabs__nav-wrap::after{
background-color: #EBEEF5;
}
</style>

@ -1,17 +1,287 @@
<template>
<div>
</div>
<div class="card">
<div style="padding:15px">
<el-radio-group v-model="select.year">
<el-radio v-for="item in years" :label="item">{{item}}</el-radio>
</el-radio-group>
</div>
<xy-table ref="xyTable"
height="100%"
:isHandlerKey="false"
:is-page="false"
:list="categories"
res-prop=""
:indent="20"
:row-key="row => row._index"
:table-item="table"
:auths="[]">
</xy-table>
<el-drawer title="填报清单" :visible.sync="isShowDrawer" position="rtl" size="560px">
<div style="padding: 20px 40px;">
<el-form class="form" ref="elForm" :model="form" :rules="rules" label-width="80px" size="small">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title"></el-input>
</el-form-item>
<el-form-item label="内容" required prop="content">
<el-input type="textarea" :autosize="{ minRows:2 }" v-model="form.content"></el-input>
</el-form-item>
<el-form-item label="附件" prop="files">
<el-upload
class="upload-demo"
:action="action"
multiple
:limit="10"
:before-upload="beforeUpload"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item label="所属月份" required prop="belongs_year_month">
<el-date-picker placeholder="请选择所属月份" type="month" value-format="yyyy-MM" v-model="form.belongs_year_month"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit"></el-button>
<el-button @click="isShowDrawer = false">取消</el-button>
</el-form-item>
</el-form>
</div>
</el-drawer>
</div>
</template>
<script>
import { category, recordStore } from "@/api/h5/form";
export default {
components:{
},
data() {
return {}
return {
isShowDrawer: false,
formInfo:[],
customForm:{
customFormId:11,
tableName:'asd'
},
fileList: [],
action: process.env.VUE_APP_UPLOAD_API,
select: {
year: this.$moment().format('YYYY')
},
years: [],
categories: [],
table: [
{
type: "",
label: "",
prop: "index",
customFn:row => {
return row._type === 'type' ? row._text : row._index;
}
},
{
prop: "title",
label: "清单类型名称",
align: "left",
customFn:row => {
return row._type === 'type' ? (<span><i style="padding: 0 8px;color: rgb(239, 216, 117);" class="el-icon-folder-opened"></i><span>{row.title}</span></span>) : (
<span><i style="padding: 0 8px;" class="el-icon-document"></i><span>{row.title}</span></span>)
}
},
{
label: "年份",
prop: "year",
width:120,
customFn:row => {
return row._type === 'type' ? '--' : row.year;
}
},
{
prop: "records_count",
label: "填报数量",
customFn:row => {
if (!row.children?.length) {
return (<span>{row.records_count}</span>)
}
}
},
{
prop: "btns",
label: "填报",
fixed: "right",
width: 80,
customFn: row => {
if (!row.children?.length) {
return (
<Button
size="small"
type="primary"
icon="ios-create"
on={
{
['click']:_ => {
// this.isShowDrawer = true;
// this.form.category_id = row.id;
this.openDialog(row.id)
}
}
}>
填报
</Button>
)
}
}
}
],
form: {
category_id: "",
title: "",
content: "",
files: "",
belongs_year_month: "",
myindex: ""
},
rules: {
content: [
{ required: true, message: "请填写内容" }
],
belongs_year_month: [
{ required: true, message: "请选择所属月份" }
]
}
}
},
methods: {
beforeUpload (file) {
if ((file.size / 1000) > (20 * 1024)) {
this.$message({
type: "warning",
message: "上传大小超过20Mb",
});
return false;
}
},
getSelectYear() {
const currentYear = this.$moment().format('YYYY');
const years = [];
for (let i = currentYear; i >= 2017; i--) {
years.push(i);
}
this.years = years
},
toChineseNum(number) {
const chineseNum = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
const chineseUnit = ["", "十", "百", "千", "万", "亿"];
let numStr = number.toString();
let len = numStr.length;
let str = "";
for (let i = 0; i < len; i++) {
str += chineseNum[parseInt(numStr[i])] + chineseUnit[len - 1 - i];
}
str = str.replace(/零[十百千]/g, "零");
str = str.replace(/零+/g, "零");
str = str.replace(/^零+/, "");
str = str.replace(/零+$/, "");
if (str[str.length - 1] === "零") {
str = str.slice(0, -1);
}
return str
},
formatList (data=[],pid) {
data.forEach((item,index) => {
if (item.hasOwnProperty('categories_tree')) {
item._id = item.id
delete item.id;
item._disabled = true
item._type = 'type'
item.children = item.categories_tree
item._text = this.toChineseNum(index+1)
} else {
item._type = 'doc'
item._index = pid ? `${pid}-${index+1}` : (index+1)
}
if (item.children instanceof Array && item.children.length > 0) {
this.formatList(item.children,item._index ? item._index : false)
}
})
},
async getCategories () {
const res = await category(this.select,false)
this.formatList(res)
this.categories = res
},
onSubmit () {
this.$refs['elForm'].validate(res => {
if (res) {
this.form.files = this.fileList.map(i => i.response.id).toString()
recordStore(this.form).then(res => {
this.$message({
type: "success",
message: "填报成功"
})
this.isShowDrawer = false;
})
}
})
},
},
methods: {},
computed: {},
created() {
this.getSelectYear()
this.getCategories()
}
}
</script>
<style lang="scss">
.el-cascader-node__label {
max-width: 300px;
}
</style>
<style scoped lang="scss">
.card {
height: 100%;
background-color: #fff;
margin: 40px;
}
::v-deep .table-tree {
height: 100%;
}
::v-deep .el-radio__input.is-checked+.el-radio__label {
color: #c4312b;
}
::v-deep .el-radio__input.is-checked .el-radio__inner {
background-color: #c4312b;
border-color: #c4312b;
}
::v-deep .el-radio__inner{
width:18px;
height:18px;
}
::v-deep .el-radio__input.is-checked .el-radio__inner:after {
content: '';
width: 12px;
height: 6px;
margin-top:-1px;
border: 2px solid white;
border-top: transparent;
border-right: transparent;
text-align: center;
display: block;
position: absolute;
top: 50%;
left: 50%;
vertical-align: middle;
transform: translate(-50%, -50%) rotate(-45deg);
border-radius: 0px;
background: none;
}
::v-deep .el-tabs__nav-wrap::after{
background-color: #EBEEF5;
}
</style>

@ -174,7 +174,7 @@ export default {
.then(() => {
console.log(this.redirect);
this.$router.push({
path: this.redirect || "/h5",
path: this.redirect || "/h5/index",
});
this.loading = false;
})

@ -10,7 +10,7 @@ export default {
render(h) {
let dialog = new CreateDialog(this,[
],{
width: "480px"
width: "570px"
})
return dialog.render()
},
@ -20,29 +20,43 @@ export default {
row: {},
formInfo: [
{
name: '姓名',
field: 'name',
edit_input: 'text',
form_show: true
name: "部门",
field: "department_id",
edit_input: "radio",
form_show: true,
_params: []
},
{
name: '职位',
field: 'position',
edit_input: 'text',
form_show: true
name: "人员类型",
field: "person_type",
edit_input: "radio",
form_show: true,
_params: []
},
{
name: '是否在职',
field: 'is_active',
edit_input: 'el-switch',
form_show: true,
_props: {
"active-text": "是",
"inactive-text": "否",
"active-value": 1,
"inactive-value": 0,
}
name: '姓名',
field: 'name',
edit_input: 'text',
form_show: true
},
// {
// name: '',
// field: 'position',
// edit_input: 'text',
// form_show: true
// },
// {
// name: '',
// field: 'is_active',
// edit_input: 'el-switch',
// form_show: true,
// _props: {
// "active-text": "",
// "inactive-text": "",
// "active-value": 1,
// "inactive-value": 0,
// }
// },
{
name: '用户名',
field: 'username',
@ -59,20 +73,23 @@ export default {
}
},
{
name: "部门",
field: "department_id",
edit_input: "radio",
form_show: true,
_params: []
name: '开始填报日期',
field: 'start_date',
edit_input: 'date',
form_show: true
},
{
name: '结束填报日期',
field: 'end_date',
edit_input: 'date',
form_show: true
},
{
name: '排序值',
field: 'myindex',
edit_input: 'el-input-number',
name: '',
field: '',
edit_input: 'placeholdertext',
placeholdertext:'留空表示填报状态持续开启,不留空系统会自动刷新填报状态',
form_show: true,
_props: {
controls: false
}
}
],
id: "",
@ -82,14 +99,14 @@ export default {
originalForm: {},
rules: {
name: [
{ required: true,message: "请填写清单名称" }
],
position: [
{ required: true,message: "请填写职位" }
],
is_active: [
{ required: true,message: "请选择是否在职" }
{ required: true,message: "请填写姓名" }
],
// position: [
// { required: true,message: "" }
// ],
// is_active: [
// { required: true,message: "" }
// ],
department_id: [
{ required: true,message: "请选择部门" }
],

@ -0,0 +1,107 @@
<template>
<div>
<xy-dialog ref="dialog" :width="30" :is-show.sync="isShow" :type="'form'"
:title="type=='add'?'新增人员类型':'编辑人员类型'" :form="form"
:rules='rules' @submit="submit">
<template v-slot:name>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>人员类型
</div>
<div class="xy-table-item-content">
<el-input v-model="form.name" placeholder="请输入人员类型" clearable></el-input>
</div>
</div>
</template>
<template v-slot:categoryTypeList>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>清单类型
</div>
<div class="xy-table-item-content">
<el-checkbox-group v-model="form.categoryTypeList">
<el-checkbox v-for="item in categoryTypeList" :label="item.id">{{item.title}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</template>
<template v-slot:sort>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>排序
</div>
<div class="xy-table-item-content">
<el-input v-model="form.sort" placeholder="请输入排序" clearable></el-input>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import {
Message
} from 'element-ui'
import { index as listCategoryType} from "@/api/categoryType"
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id:'',
categoryTypeList:[],
form: {
name:'',
categoryTypeList:[],
sort:0
},
rules: {
name: [{
required: true,
message: '请输入人员类型'
}]
}
}
},
created() {
this.getCategoryType()
},
methods: {
async getCategoryType(){
const res = await listCategoryType()
this.categoryTypeList = res.data
},
getDetail(){
},
submit(){},
},
watch: {
isShow(newVal) {
if(newVal){
if(this.type==='editor'){
this.getDetail()
}
}else{
this.type="add"
this.id=''
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .name,
::v-deep .categoryTypeList,
::v-deep .sort{
flex-basis: 100%;
}
</style>

@ -0,0 +1,73 @@
<template>
<div>
<xy-dialog ref="dialog" :width="30" :is-show.sync="isShow" :type="'form'" title="设置清单类型" :form="form"
:rules='rules' @submit="submit">
<template v-slot:categoryTypeList>
<div class="xy-table-item">
<!-- <div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>清单类型
</div> -->
<div class="xy-table-item-content">
<el-checkbox-group v-model="form.categoryTypeList">
<el-checkbox v-for="item in categoryTypeList" :label="item.id">{{item.title}}</el-checkbox>
</el-checkbox-group>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import {
Message
} from 'element-ui'
import { index as listCategoryType} from "@/api/categoryType"
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id:'',
categoryTypeList:[],
form: {
categoryTypeList:[]
},
rules: {
categoryTypeList: [{
required: true,
message: '请选择填报清单'
}]
}
}
},
created() {
this.getCategoryType()
},
methods: {
async getCategoryType(){
const res = await listCategoryType()
this.categoryTypeList = res.data
},
submit(){},
},
watch: {
isShow(newVal) {
},
}
}
</script>
<style scoped lang="scss">
::v-deep .categoryTypeList{
flex-basis: 100%;
}
</style>

@ -10,6 +10,17 @@
<header-content :auths="auths_auth_mixin">
<template #search>
<div style="display: flex">
<div style="margin-right:10px">
<span>填报状态</span>
<Select v-model="select.status" style="width:120px">
<Option v-for="item in statusList"
:value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
<div style="margin-right:10px">
<Input v-model="select.keyword" placeholder="请输入关键字" style="width: 150px" />
</div>
<Button
type="primary"
@click="$refs['xyTable'].getTableData(true)"
@ -60,6 +71,20 @@ export default {
},
data() {
return {
select:{
status:'',
keyword:''
},
statusList:[{
label:'开启填报',
value:0
},{
label:'关闭填报',
value:1
},{
label:'全部',
value:2
}],
table: [
{
type: "index",
@ -68,29 +93,62 @@ export default {
},
{
prop: "name",
label: "姓名"
label: "姓名",
width:120
},
{
prop: "position",
label: "职位"
prop: "department.name",
label: "部门",
width: 120
},
{
prop: "is_active",
label: "是否在职",
width: 80,
formatter:(v1,v2,val) => {
return val ? "在职" : "离职"
}
prop: "person.name",
label: "人员类别",
width: 120
},
{
prop: "username",
label: "用户名"
prop: "start_date",
label: "开始填报日期",
width: 160
},
{
prop: "department.name",
label: "部门",
width: 200
prop: "end_date",
label: "结束填报日期",
width: 160
},
{
prop: "status",
label: "填报状态",
width: 160,
customFn: (row) => {
return ( <el-switch
v-model={row.status}
on = {
{
['change']: (e) => {
}
}
}></el-switch>)
}
},
// {
// prop: "position",
// label: ""
// },
// {
// prop: "is_active",
// label: "",
// width: 80,
// formatter:(v1,v2,val) => {
// return val ? "" : ""
// }
// },
{
prop: "username",
label: "用户名"
},
{
width: 80,
prop: "myindex",

@ -0,0 +1,135 @@
<template>
<div>
<div>
<div ref="lxHeader">
<LxHeader
style="margin-bottom: 10px; border: 0px; margin-top: 15px"
>
<div slot="content"></div>
<slot>
<header-content :auths="auths_auth_mixin">
<!-- <template #search>
<div style="display: flex">
<Button
type="primary"
@click="$refs['xyTable'].getTableData(true)"
>查询</Button
>
</div>
</template> -->
<template #create>
<Button
type="primary"
@click="$refs['createType'].type='add',$refs['createType'].isShow=true"
>新增</Button
>
</template>
</header-content>
</slot>
</LxHeader>
</div>
</div>
<xy-table ref="xyTable"
:table-item="table"
:auths="auths_auth_mixin"
:action="index"
:destroy-action="destroy"
@editor="row => {
$refs['createType'].setId(row.id);
$refs['createType'].setType('editor');
$refs['createType'].show();
}">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="300" header-align="center">
<template slot-scope="scope" style="display: flex;">
<el-popover width="180"
:ref="`${scope.row.id}-${scope.$index}`"
trigger="hover">
<template>
<div>
<p style="padding-bottom: 10px;">确定要删除吗</p>
<div style="text-align: right;margin: 0;">
<el-button size="mini"
type="text"
@click="$refs[`${scope.row.id}-${scope.$index}`].doClose()"
>取消</el-button>
<el-button type="primary"
size="mini"
@click="$refs['xyTable'].deleteClick(scope.row, 'delete')">确定</el-button>
</div>
</div>
</template>
<template #reference>
<Button
style="margin-right:6px;"
type="error"
size="small">
删除
</Button>
</template>
</el-popover>
<Button size="small" type="primary" @click="$refs['createType'].id=scope.row.id,
$refs['createType'].type='editor',$refs['createType'].isShow=true;">编辑</Button>
<Button size="small" type="primary" @click="$refs['createTypeSetting'].id=scope.row.id,
$refs['createTypeSetting'].isShow=true;">设置清单类型</Button>
</template>
</el-table-column>
</template>
</xy-table>
<createType ref="createType" @refresh="$refs['xyTable'].getTableData()"></createType>
<createTypeSetting ref="createTypeSetting" @refresh="$refs['xyTable'].getTableData()"></createTypeSetting>
</div>
</template>
<script>
import { index,destroy } from "@/api/person"
import { authMixin } from "@/mixin/authMixin";
import headerContent from "@/components/LxHeader/XyContent.vue";
import LxHeader from "@/components/LxHeader/index.vue";
import createType from "./component/createType.vue"
import createTypeSetting from "./component/createTypeSetting.vue"
export default {
mixins: [authMixin],
components: {
headerContent,
LxHeader,
createType,
createTypeSetting
},
data() {
return {
table: [
{
type: "index",
width: 46,
label: "序号"
},
{
prop: "name",
label: "人员类型"
},
{
prop: "position",
label: "需填报清单类型"
},
{
width: 80,
prop: "myindex",
label: "排序"
}
]
}
},
methods: {
index,destroy,
createCategory(row){},
},
computed: {},
}
</script>
<style scoped lang="scss">
</style>
Loading…
Cancel
Save