This commit is contained in:
刘仕伟
2022-03-08 18:27:52 +08:00
21 changed files with 227 additions and 229 deletions

View File

@@ -7,7 +7,7 @@
<template slot="content"> <template slot="content">
<ai-card title="基本信息"> <ai-card title="基本信息">
<template #content> <template #content>
<el-form ref="form" class="ai-form" :model="form" label-width="110px" label-position="right"> <el-form ref="CBookForm" class="ai-form" :model="form" label-width="110px" label-position="right">
<el-form-item label="地区" style="width: 100%;" prop="codeName"> <el-form-item label="地区" style="width: 100%;" prop="codeName">
<span style="color: #666;">{{ form.areaName }}</span> <span style="color: #666;">{{ form.areaName }}</span>
</el-form-item> </el-form-item>
@@ -93,7 +93,7 @@
methods: { methods: {
getInfo (id) { getInfo (id) {
this.instance.post(`/app/appconvenientaddressbook/queryDetailById?id=${id}`).then(res => { this.instance.post(`/app/appconvenientaddressbook/queryDetailById?id=${id}`).then(res => {
if (res.code === 0) { if (res?.data) {
this.form = res.data this.form = res.data
} }
}) })
@@ -117,7 +117,7 @@
}, },
confirm () { confirm () {
this.$refs.form.validate((valid) => { this.$refs.CBookForm.validate((valid) => {
if (valid) { if (valid) {
this.instance.post(`/app/appconvenientaddressbook/addOrUpdate`, { this.instance.post(`/app/appconvenientaddressbook/addOrUpdate`, {
...this.form, ...this.form,

View File

@@ -4,7 +4,8 @@
<ai-title title="三会一课" isShowBottomBorder slot="title"> <ai-title title="三会一课" isShowBottomBorder slot="title">
<template #rightBtn> <template #rightBtn>
<ai-party :instance="instance" v-model="partyId" :topOrgId="topOrgId" :name.sync="partyOrgLabel" <ai-party :instance="instance" v-model="partyId" :topOrgId="topOrgId" :name.sync="partyOrgLabel"
style="display:inline-block" @origin="changeParty" customClicker url="/app/partyOrganization/queryAllChildren"> style="display:inline-block" @origin="changeParty" customClicker
url="/app/partyOrganization/queryAllChildren">
<el-input size="small" v-model="partyOrgLabel" readonly placeholder="选择党组织"> <el-input size="small" v-model="partyOrgLabel" readonly placeholder="选择党组织">
<el-row slot="append" type="flex" class="partyPicker"> <el-row slot="append" type="flex" class="partyPicker">
<i class="iconfont icondangyuan"/> <i class="iconfont icondangyuan"/>
@@ -42,11 +43,7 @@
</template> </template>
<template #right> <template #right>
<el-input size="small" v-model="search.meetingAgenda" placeholder="会议标题/创建人" <el-input size="small" v-model="search.meetingAgenda" placeholder="会议标题/创建人"
prefix-icon="iconfont iconSearch" clearable suffix-icon="iconfont iconSearch" clearable @change="page.current=1,getAppThreeMeetingInfo()"/>
@keyup.enter.native="page.current=1,getAppThreeMeetingInfo()"/>
<el-button type="primary" icon="iconfont iconSearch" @click="page.current=1,getAppThreeMeetingInfo()">查询
</el-button>
<el-button icon="el-icon-refresh-right" @click="resetSearch">重置</el-button>
</template> </template>
</ai-search-bar> </ai-search-bar>
<ai-search-bar> <ai-search-bar>
@@ -144,7 +141,8 @@
@change="getMeetStatistics" @change="getMeetStatistics"
placeholder="选择年份"> placeholder="选择年份">
</el-date-picker> </el-date-picker>
<el-select style="width: 200px" v-model="searchMonth" placeholder="全部" size="small" clearable class="timeSelect" <el-select style="width: 200px" v-model="searchMonth" placeholder="全部" size="small" clearable
class="timeSelect"
@change="getMeetStatistics"> @change="getMeetStatistics">
<el-option v-for="(op,j) in dict.getDict('monthList')" :key="j" :label="op.dictName" <el-option v-for="(op,j) in dict.getDict('monthList')" :key="j" :label="op.dictName"
:value="op.dictValue"/> :value="op.dictValue"/>

View File

@@ -47,28 +47,28 @@
</span> </span>
</span> </span>
<span class="value" v-else>-</span></el-form-item> <span class="value" v-else>-</span></el-form-item>
<ai-title title="附件" isShowBottomBorder> <!-- <ai-title title="附件" isShowBottomBorder>-->
<template #rightBtn> <!-- <template #rightBtn>-->
<el-button type="text" icon="iconfont iconDownload" @click="downLoadAll">下载全部</el-button> <!-- <el-button type="text" icon="iconfont iconDownload" @click="downLoadAll">下载全部</el-button>-->
</template> <!-- </template>-->
</ai-title> <!-- </ai-title>-->
<el-form-item label-width="0"> <!-- <el-form-item label-width="0">-->
<div v-if="obj.annex.length"> <!-- <div v-if="obj.annex.length">-->
<div class="flie" v-for="(item, index) in obj.annex" :key="index" <!-- <div class="flie" v-for="(item, index) in obj.annex" :key="index"-->
@click="downFile(item)"> <!-- @click="downFile(item)">-->
<p> <!-- <p>-->
<svg aria-hidden="true" style="width:24px;height:24px;"> <!-- <svg aria-hidden="true" style="width:24px;height:24px;">-->
<use xlink:href="#iconAppendix_UNdownload"></use> <!-- <use xlink:href="#iconAppendix_UNdownload"></use>-->
</svg> <!-- </svg>-->
<span>{{ item.name }}</span> <!-- <span>{{ item.name }}</span>-->
</p> <!-- </p>-->
<span style="color:#999;">{{ (item.size / 1024).toFixed(2) + "KB" }} <!-- <span style="color:#999;">{{ (item.size / 1024).toFixed(2) + "KB" }}-->
<span class="iconfont iconDownload" style="color:#5088FF"></span> <!-- <span class="iconfont iconDownload" style="color:#5088FF"></span>-->
</span> <!-- </span>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="no-data" style="height:160px;width:100%;" v-else></div> <!-- <div class="no-data" style="height:160px;width:100%;" v-else></div>-->
</el-form-item> <!-- </el-form-item>-->
<ai-title title="人员信息" isShowBottomBorder/> <ai-title title="人员信息" isShowBottomBorder/>
<el-form-item label="与会组织">{{ arrLabel(obj.appThreeMeetingOrganizationList, 'name') }}</el-form-item> <el-form-item label="与会组织">{{ arrLabel(obj.appThreeMeetingOrganizationList, 'name') }}</el-form-item>
<el-form-item label="主持人">{{ arrLabel(obj.hostList, 'userName') }}</el-form-item> <el-form-item label="主持人">{{ arrLabel(obj.hostList, 'userName') }}</el-form-item>

View File

@@ -461,7 +461,11 @@
return this.$message.error('请上传图片') return this.$message.error('请上传图片')
} }
this.images.push(this.form.images) this.images = [
...this.images,
...this.form.images
]
this.form.images = [] this.form.images = []
this.isShowAddImg = false this.isShowAddImg = false
}, },

View File

@@ -620,7 +620,7 @@ const components = [
title: '', title: '',
moniterId: '', moniterId: '',
monitorType: 'cmcc', monitorType: 'cmcc',
api: '/app/appzyvideoequipment/list', api: '/app/appzyvideoequipment/list2',
border: 'border2', border: 'border2',
sourceDataId: '', sourceDataId: '',
dataType: 'staticData', dataType: 'staticData',

View File

@@ -1,7 +1,7 @@
<template> <template>
<ai-detail class="family_detail"> <ai-detail class="family_detail">
<template slot="title"> <template slot="title">
<ai-title title="余额明细" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="$emit('goBack')" ></ai-title> <ai-title title="余额明细" :isShowBack="true" :isShowBottomBorder="true" @onBackClick="$emit('goBack')"></ai-title>
</template> </template>
<template slot="content"> <template slot="content">
<div class="detail-info"> <div class="detail-info">
@@ -28,7 +28,7 @@
:instance="instance" :instance="instance"
url="/app/appvillagerintegraldetail/export" url="/app/appvillagerintegraldetail/export"
:disabled="!Boolean(tableData.length)" :disabled="!Boolean(tableData.length)"
:params="{familyName:detailInfo.name,doType:doType}" :params="{familyId:detailInfo.id,bizType:detailInfo.doType}"
fileName="余额变动明细"> fileName="余额变动明细">
<span class="iconfont iconExported">导出</span> <span class="iconfont iconExported">导出</span>
</ai-download> </ai-download>
@@ -60,7 +60,7 @@
</template> </template>
<script> <script>
export default { export default {
name: 'balance', name: 'balance',
props: { props: {
@@ -72,7 +72,7 @@
dict: Object dict: Object
}, },
data () { data() {
return { return {
page: { page: {
current: 1, current: 1,
@@ -84,27 +84,25 @@
} }
}, },
created () { created() {
this.dict.load('integralDetailType') this.dict.load('integralDetailType')
this.getList() this.getList()
}, },
computed: { computed: {
colConfigs () { colConfigs() {
const _this = this const _this = this
return [ return [
{ {
prop: 'doTime', prop: 'doTime',
align: 'center', label: '时间'
label: '时间',
align:'left'
}, },
{ {
prop: 'bizType', prop: 'bizType',
align: 'center', align: 'center',
label: '类型', label: '类型',
render (h, {row}) { render(h, {row}) {
return h('span',{}, _this.dict.getLabel('integralDetailType', row.bizType)) return h('span', {}, _this.dict.getLabel('integralDetailType', row.bizType))
} }
}, },
{ {
@@ -120,21 +118,19 @@
}, },
{ {
prop: 'description', prop: 'description',
align: 'center',
label: '事件类型', label: '事件类型',
align:'left'
} }
] ]
} }
}, },
methods: { methods: {
getList () { getList() {
this.instance.post('/app/appvillagerintegraldetail/list', null, { this.instance.post('/app/appvillagerintegraldetail/list', null, {
params: { params: {
...this.page, ...this.page,
familyId:this.detailInfo.id, familyId: this.detailInfo.id,
bizType:this.doType bizType: this.doType
} }
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
@@ -144,16 +140,16 @@
}) })
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.family_detail{ .family_detail {
height: 100%; height: 100%;
background-color: #fff; background-color: #fff;
::v-deep .ai-card__body { ::v-deep .ai-card__body {
padding: 12px 16px 20px!important; padding: 12px 16px 20px !important;
} }
@@ -168,7 +164,7 @@
margin-right: 20px; margin-right: 20px;
padding: 16px 24px; padding: 16px 24px;
background: #FFFFFF; background: #FFFFFF;
box-shadow: 0px 4px 6px -2px rgba(15, 15, 21, 0.15); box-shadow: 0 4px 6px -2px rgba(15, 15, 21, 0.15);
border-radius: 4px; border-radius: 4px;
&:last-child { &:last-child {
@@ -192,21 +188,24 @@
} }
} }
.iconExported{ .iconExported {
color:#5088FF; color: #5088FF;
font-size: 12px; font-size: 12px;
cursor: pointer; cursor: pointer;
} }
.info{
.info {
padding: 16px 0 16px 0; padding: 16px 0 16px 0;
} }
.do_type{
.do_type {
height: 56px; height: 56px;
} }
.fs-14{
::v-deep .el-table--small{ .fs-14 {
font-size: 14px!important; ::v-deep .el-table--small {
} font-size: 14px !important;
} }
} }
}
</style> </style>

View File

@@ -1,8 +1,8 @@
<template> <template>
<section class="approval-manage"> <section class="AppApprovalManage">
<ai-list v-if="showList"> <ai-list v-if="showList">
<template slot="title"> <template slot="title">
<ai-title title="审批管理" :isShowBottomBorder="false"></ai-title> <ai-title title="审批管理" :isShowBottomBorder="false"/>
</template> </template>
<template slot="tabs"> <template slot="tabs">
<el-tabs class="tabs-page" v-model="currIndex"> <el-tabs class="tabs-page" v-model="currIndex">
@@ -86,7 +86,7 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.approval-manage { .AppApprovalManage {
width: 100%; width: 100%;
height: 100%; height: 100%;
background-color: #F3F6F9; background-color: #F3F6F9;

View File

@@ -61,7 +61,7 @@
</el-form-item> </el-form-item>
</div> </div>
<template v-if="applyForm=={}"> <template v-if="applyForm=={}">
<div class="no-data"></div> <div class="no-data"/>
</template> </template>
</div> </div>
</el-form> </el-form>

View File

@@ -587,11 +587,7 @@
}, },
onheadPictureChange (e) { onheadPictureChange (e) {
if (e.length) { this.form.isShowheadPicture = !!e.length;
this.form.isShowheadPicture = true
} else {
this.form.isShowheadPicture = false
}
}, },
init () { init () {
@@ -757,7 +753,7 @@
onConfirm (status) { onConfirm (status) {
if (this.params.templateType == 1) { if (this.params.templateType == 1) {
this.submitTemp() // this.submitTemp()
} }
if (this.form.periodValidityType === '1') { if (this.form.periodValidityType === '1') {

View File

@@ -28,5 +28,7 @@
"AppMeetingChinaunion": "三会一课", "AppMeetingChinaunion": "三会一课",
"AppPartyHistoryClass": "党员学习", "AppPartyHistoryClass": "党员学习",
"AppPartyOrganization": "党组织管理", "AppPartyOrganization": "党组织管理",
"AppPartyMember": "党员管理" "AppPartyMember": "党员管理",
"AppLicence": "产品许可",
"AppContentManage": "内容中心"
} }

View File

@@ -4,7 +4,7 @@
<template #title> <template #title>
<ai-title title="公文详情" isShowBottomBorder isShowBack @onBackClick="cancel(true)"> <ai-title title="公文详情" isShowBottomBorder isShowBack @onBackClick="cancel(true)">
<template #rightBtn> <template #rightBtn>
<ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="form.readType == '0' ? false : true" @change="onChange" v-if="form.status === '0'"> <ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="form.readType!='0'" @change="onChange" v-if="form.status === '0'">
<el-button <el-button
size="small" size="small"
type="primary" type="primary"
@@ -12,7 +12,7 @@
开始流转 开始流转
</el-button> </el-button>
</ai-wechat-selecter> </ai-wechat-selecter>
<ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="form.readType == '0' ? false : true" @change="onChange" v-if="form.status === '2' && form.readType == '0'"> <ai-wechat-selecter :instance="instance" v-model="addUser" :isMultiple="form.readType!='0'" @change="onChange" v-if="form.status === '2' && form.readType == '0'">
<el-button <el-button
size="small" size="small"
type="primary" type="primary"
@@ -131,7 +131,7 @@
class="iconfont iconDelete" class="iconfont iconDelete"
title="删除" title="删除"
style="cursor: pointer;" style="cursor: pointer;"
@click="remove(row.id)"> @click="remove(row.flowId)">
</span> </span>
</template> </template>
</el-table-column> </el-table-column>

View File

@@ -80,6 +80,7 @@
:size.sync="page.size" :size.sync="page.size"
@getList="getList" @getList="getList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
:dict="dict"
> >
<el-table-column slot="selection" type="selection" width="55"></el-table-column> <el-table-column slot="selection" type="selection" width="55"></el-table-column>
<el-table-column slot="options" label="操作" align="center" width="200"> <el-table-column slot="options" label="操作" align="center" width="200">
@@ -142,24 +143,21 @@ export default {
label: "公文类型", label: "公文类型",
width: 120, width: 120,
align: "center", align: "center",
formart: (documentType) => dict: "officialDocumentName"
this.$dict.getLabel("officialDocumentName", documentType),
}, },
{ {
prop: "readType", prop: "readType",
label: "阅示类型", label: "阅示类型",
width: 120, width: 120,
align: "center", align: "center",
formart: (readType) => dict: "officialDocumentReadType"
this.$dict.getLabel("officialDocumentReadType", readType),
}, },
{ {
prop: "confidentialityLevel", prop: "confidentialityLevel",
label: "保密等级", label: "保密等级",
width: 120, width: 120,
align: "center", align: "center",
formart: (confidentialityLevel) => dict: "officialDocumentConfidentialityLevel"
this.$dict.getLabel("officialDocumentConfidentialityLevel", confidentialityLevel),
}, },
{ {
prop: "flowUserName", prop: "flowUserName",
@@ -192,7 +190,7 @@ export default {
]; ];
}, },
}, },
mounted() { created() {
this.dict.load('officialDocumentName', 'officialDocumentConfidentialityLevel', 'officialDocumentReadType', 'documentStatus').then(() => { this.dict.load('officialDocumentName', 'officialDocumentConfidentialityLevel', 'officialDocumentReadType', 'documentStatus').then(() => {
this.$nextTick(() => this.getList()) this.$nextTick(() => this.getList())
}) })

View File

@@ -28,7 +28,7 @@
<ai-info-item label="审核意见" v-if="info.auditStatus === '2'" isLine :value="info.auditOpinion"></ai-info-item> <ai-info-item label="审核意见" v-if="info.auditStatus === '2'" isLine :value="info.auditOpinion"></ai-info-item>
<ai-info-item label="积分规则类别" v-if="info.auditStatus === '1'" :value="dict.getLabel('atWillReportType', info.auditIntegralType)"></ai-info-item> <ai-info-item label="积分规则类别" v-if="info.auditStatus === '1'" :value="dict.getLabel('atWillReportType', info.auditIntegralType)"></ai-info-item>
<ai-info-item label="积分规则事项" v-if="info.auditStatus === '1'" :value="info.auditRuleName"></ai-info-item> <ai-info-item label="积分规则事项" v-if="info.auditStatus === '1'" :value="info.auditRuleName"></ai-info-item>
<ai-info-item label="积分调整" isLine v-if="info.auditStatus === '1'" :value="(info.auditIntegral >= 0 ? + info.auditIntegral : info.auditIntegral) + '分'"></ai-info-item> <ai-info-item label="积分调整" isLine v-if="info.auditStatus === '1'" :value="(info.auditIntegral >= 0 ? info.auditIntegral : info.auditIntegral) + '分'"></ai-info-item>
<ai-info-item label="审核人" :value="info.auditUserName"></ai-info-item> <ai-info-item label="审核人" :value="info.auditUserName"></ai-info-item>
<ai-info-item label="审核时间" :value="info.auditTime"></ai-info-item> <ai-info-item label="审核时间" :value="info.auditTime"></ai-info-item>
</ai-wrapper> </ai-wrapper>
@@ -72,7 +72,7 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="审核意见" v-if="form.pass === '0'" prop="opinion" style="width: 100%;" :rules="[{ required: true, message: '请输入审核意见' }]"> <el-form-item label="审核意见" v-if="form.pass === '0'" prop="opinion" style="width: 100%;" :rules="[{ required: true, message: '请输入审核意见' }]">
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input> <el-input type="textarea" :rows="5" :maxlength="200" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</ai-dialog> </ai-dialog>

View File

@@ -71,7 +71,7 @@
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="审核意见" prop="opinion" style="width: 100%;" :rules="[{ required: form.pass === '0' ? true : false, message: '请输入审核意见' }]"> <el-form-item label="审核意见" prop="opinion" style="width: 100%;" :rules="[{ required: form.pass === '0', message: '请输入审核意见' }]">
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input> <el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@@ -1,7 +1,7 @@
<template> <template>
<section class="addAborigines"> <section class="addAborigines">
<ai-detail> <ai-detail>
<ai-title slot="title" title="详情" isShowBack @onBackClick="$router.push({query:{}})" isShowBottomBorder></ai-title> <ai-title slot="title" title="详情" isShowBack @onBackClick="$router.push({query:{}})" isShowBottomBorder/>
<template #content> <template #content>
<ai-card title="基本信息"> <ai-card title="基本信息">
<div slot="content"> <div slot="content">
@@ -193,8 +193,8 @@
<el-radio label="1"></el-radio> <el-radio label="1"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="审核意见" prop="opinion" style="width: 100%;" :rules="[{ required: form.pass === '0' ? true : false, message: '请输入审核意见' }]"> <el-form-item label="审核意见" prop="opinion" style="width: 100%;" :rules="[{ required: form.pass === '0', message: '请输入审核意见' }]">
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input> <el-input type="textarea" :rows="5" :maxlength="200" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</ai-dialog> </ai-dialog>

View File

@@ -1,7 +1,7 @@
<template> <template>
<ai-list class="villagecode"> <ai-list class="villagecode">
<template slot="title"> <template slot="title">
<ai-title title="一村一" isShowBottomBorder></ai-title> <ai-title title="一村一" isShowBottomBorder></ai-title>
</template> </template>
<template #left> <template #left>
<div class="villagecode-left"> <div class="villagecode-left">

View File

@@ -47,7 +47,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="审核意见" v-if="form.pass === '0'" prop="opinion" style="width: 100%;" :rules="[{ required: true, message: '请输入审核意见' }]"> <el-form-item label="审核意见" v-if="form.pass === '0'" prop="opinion" style="width: 100%;" :rules="[{ required: true, message: '请输入审核意见' }]">
<el-input type="textarea" :rows="5" :maxlength="500" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input> <el-input type="textarea" :rows="5" :maxlength="200" v-model="form.opinion" clearable placeholder="请输入审核意见" show-word-limit></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</ai-dialog> </ai-dialog>

View File

@@ -121,7 +121,8 @@
this.instance.post(`/app/appvillagercircleinfo/list`, null, { this.instance.post(`/app/appvillagercircleinfo/list`, null, {
params: { params: {
...this.search, ...this.search,
areaId: this.areaId areaId: this.areaId,
createTimeEnd: this.search.createTimeEnd ? this.search.createTimeEnd + ' 23:59:59' : ''
} }
}).then(res => { }).then(res => {
if (res.code == 0) { if (res.code == 0) {

View File

@@ -1,7 +1,7 @@
<template> <template>
<ai-list> <ai-list>
<template slot="title"> <template slot="title">
<ai-title title="积分审核" :isShowBottomBorder="false" :instance="instance" :isShowArea="true" v-model="areaId" <ai-title title="积分维护" :isShowBottomBorder="false" :instance="instance" :isShowArea="true" v-model="areaId"
@change="changeArea"></ai-title> @change="changeArea"></ai-title>
</template> </template>
<template slot="tabs"> <template slot="tabs">
@@ -24,7 +24,7 @@ import scoreChange from "./scoreChange";
export default { export default {
name: 'AppScoreManage', name: 'AppScoreManage',
label: "积分审核", label: "积分维护",
components: {pointsDeclaration, pointsDetails, pointsAppeal, scoreChange}, components: {pointsDeclaration, pointsDetails, pointsAppeal, scoreChange},
props: { props: {
instance: Function, instance: Function,