commit
This commit is contained in:
@@ -5,6 +5,7 @@ const PROPOSAL_INFO = {
|
||||
<div class="proposal-info">
|
||||
<div class="process-title">
|
||||
提案基础信息
|
||||
<el-link type="primary" @click="openChart">点击查看流程图</el-link>
|
||||
</div>
|
||||
<h3 style="text-align: center;font-weight: 600" class="pt10 pb10">
|
||||
{{ viewData.name }}
|
||||
@@ -197,6 +198,7 @@ const PROPOSAL_INFO = {
|
||||
</template>
|
||||
|
||||
<slot></slot>
|
||||
<snaker-chart ref="snakerChartRef"></snaker-chart>
|
||||
</div>
|
||||
`,
|
||||
dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT", "PROPOSAL_CASE_FILING_TYPE", "PROCESS_TASK_SUBMIT_TYPE", "PROPOSAL_FEEDBACK"],
|
||||
@@ -246,6 +248,9 @@ const PROPOSAL_INFO = {
|
||||
})
|
||||
},
|
||||
|
||||
openChart(){
|
||||
this.$refs.snakerChartRef.onOpenFull(this.row.instanceProcessDefineId, this.row.instanceId)
|
||||
}
|
||||
},
|
||||
style:
|
||||
/*language=CSS*/
|
||||
|
||||
+4
-4
@@ -68,9 +68,9 @@ layout("/layouts/platform.html"){
|
||||
v-if="column.visible !== false"
|
||||
>
|
||||
<template v-if="column.prop === 'caseFilingResult'" scope="{row}">
|
||||
<dict-tag v-if="row.taskState!==10"
|
||||
<dict-tag
|
||||
:options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="row.caseFilingResult"></dict-tag>
|
||||
:value="JSON.parse(row.taskVariable)?.tf_caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'merge'" scope="{row}">
|
||||
<el-tag v-if="row.merge" size="small">是</el-tag>
|
||||
@@ -148,9 +148,9 @@ layout("/layouts/platform.html"){
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核意见" prop="approvalOpinion"
|
||||
<el-form-item label="审核意见" prop="tf_opinion"
|
||||
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
|
||||
<user-opinion-textarea v-model="formData.approvalOpinion"></user-opinion-textarea>
|
||||
<user-opinion-textarea v-model="formData.tf_opinion"></user-opinion-textarea>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
|
||||
+14
-14
@@ -44,7 +44,7 @@ layout("/layouts/platform.html"){
|
||||
<!-- </search-item>-->
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool :columns.sync="tableColumns">
|
||||
<!-- <el-button type="primary" icon="el-icon-plus" size="small" @click="openMerge">并案审核</el-button>-->
|
||||
@@ -69,9 +69,9 @@ layout("/layouts/platform.html"){
|
||||
v-if="column.visible !== false"
|
||||
>
|
||||
<template v-if="column.prop === 'caseFilingResult'" scope="{row}">
|
||||
<dict-tag v-if="row.taskState!==10"
|
||||
:options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="row.caseFilingResult"></dict-tag>
|
||||
<dict-tag
|
||||
:options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="JSON.parse(row.taskVariable)?.tf_caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'merge'" scope="{row}">
|
||||
<el-tag v-if="row.merge" size="small">是</el-tag>
|
||||
@@ -93,7 +93,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
|
||||
<template #edit>
|
||||
<proposal-info ref="proposalInfoRef" @done-tasks="doneTasks">
|
||||
<div v-if="showApprovalForm">
|
||||
@@ -162,7 +162,7 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</proposal-info>
|
||||
</template>
|
||||
|
||||
|
||||
<template #public>
|
||||
<merge ref="mergeRef" @close="$refs.guava.index()"></merge>
|
||||
</template>
|
||||
@@ -172,7 +172,7 @@ layout("/layouts/platform.html"){
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../../common/info.js'){}#-->
|
||||
<!--#include('../committeeFiling/merge.js'){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
@@ -237,7 +237,7 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.proposalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
handleTaskAction(val) {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (!valid) return
|
||||
@@ -253,7 +253,7 @@ layout("/layouts/platform.html"){
|
||||
} else {
|
||||
tf_helpunitreply = 'NO_HELP_UNIT'
|
||||
}
|
||||
|
||||
|
||||
const loading = createLoading('提交中')
|
||||
this.$axios.post("/platform/proposal/committeeFilingUnit/executeTask", {
|
||||
data: JSON.stringify({
|
||||
@@ -276,7 +276,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 打开并案审核
|
||||
openMerge() {
|
||||
const selection = this.$refs.tableRef.selection
|
||||
@@ -293,7 +293,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
@@ -311,12 +311,12 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 教代会
|
||||
async meetingChange(val) {
|
||||
this.doSearch()
|
||||
},
|
||||
|
||||
|
||||
// 查询开启的教代会
|
||||
listOpenSession() {
|
||||
this.$axios.post("/platform/proposal/common/listOpenSession").then((res) => {
|
||||
@@ -329,7 +329,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 查询承办单位
|
||||
listUnderTake() {
|
||||
this.$axios.post("/platform/proposal/common/listUnderTake").then((res) => {
|
||||
|
||||
@@ -23,7 +23,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool :columns.sync="tableColumns">
|
||||
<el-button class="ml5" icon="el-icon-upload2" plain type="primary"
|
||||
<el-button class="ml5" icon="el-icon-upload2" type="primary" size="small"
|
||||
@click="openImport">导入提案
|
||||
</el-button>
|
||||
</table-tool>
|
||||
|
||||
+36
-14
@@ -21,7 +21,7 @@ layout("/layouts/platform.html"){
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
|
||||
|
||||
<el-card shadow="never">
|
||||
<table-tool :columns.sync="tableColumns">
|
||||
<el-radio-group v-model="pageForm.approval" size="small" @change="doSearch">
|
||||
@@ -58,7 +58,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</el-card>
|
||||
|
||||
|
||||
<template #edit>
|
||||
<proposal-info ref="proposalInfoRef">
|
||||
<div v-if="showApprovalForm">
|
||||
@@ -74,7 +74,8 @@ layout("/layouts/platform.html"){
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到提案人</el-button>
|
||||
<el-button @click="handleTaskAction(4)" size="small" type="info">退回到提案人(不审核)</el-button>
|
||||
<el-button @click="handleTaskAction(6)" size="small" type="info">退回到提案人(审核)</el-button>
|
||||
<el-button @click="handleTaskAction(2)" size="small" type="danger">不同意</el-button>
|
||||
<el-button @click="handleTaskAction(1)" size="small" type="primary">同意</el-button>
|
||||
</el-row>
|
||||
@@ -85,7 +86,7 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../../common/info.js'){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
@@ -122,18 +123,19 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.proposalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
openAudit(row) {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.showApprovalForm = true
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
taskName: row.curTaskName,
|
||||
taskKey: row.taskKey
|
||||
}
|
||||
this.$refs.proposalInfoRef.onOpen(row)
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 查询开启的教代会
|
||||
listOpenSession() {
|
||||
this.$axios.post("/platform/proposal/common/listOpenSession").then((res) => {
|
||||
@@ -142,12 +144,11 @@ layout("/layouts/platform.html"){
|
||||
if (this.sessionOptions) {
|
||||
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
|
||||
this.pageData()
|
||||
this.listDelegation()
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
handleTaskAction(val) {
|
||||
this.$refs.formRef.validate(valid => {
|
||||
if (!valid) return
|
||||
@@ -156,11 +157,17 @@ layout("/layouts/platform.html"){
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(() => {
|
||||
const params = {
|
||||
...this.formData,
|
||||
submitType: val,
|
||||
taskName: 'startTask'
|
||||
}
|
||||
if(val === 4) {
|
||||
params.tf_sourceTaskKey = this.formData.taskKey
|
||||
params.tf_audit = false
|
||||
}
|
||||
this.$axios.post("/flow/common/executeTask", {
|
||||
data: JSON.stringify({
|
||||
...this.formData,
|
||||
submitType: val
|
||||
})
|
||||
data: JSON.stringify(params)
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
@@ -170,7 +177,22 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
onRevoke(row) {
|
||||
this.$confirm("您确定要撤回吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "info"
|
||||
}).then(() => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.taskId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
+2
-3
@@ -108,9 +108,8 @@ layout("/layouts/platform.html"){
|
||||
</el-form>
|
||||
<el-row type="flex" justify="end">
|
||||
<el-button @click="$refs.guava.index()" size="small">取消</el-button>
|
||||
<el-button @click="handleTaskAction('back')" size="small" type="danger">退回重新答复
|
||||
</el-button>
|
||||
<el-button @click="handleTaskAction('agree')" size="small" type="primary">同意答复</el-button>
|
||||
<el-button @click="handleTaskAction('back')" size="small" type="danger">退回提委会立案</el-button>
|
||||
<el-button @click="handleTaskAction('agree')" size="small" type="primary">同意</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</proposal-info>
|
||||
|
||||
+5
-5
@@ -161,14 +161,14 @@ layout("/layouts/platform.html"){
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
this.updateSecond(val)
|
||||
this.updateSecond(val, false)
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
updateSecond(submitType) {
|
||||
|
||||
updateSecond(submitType, flag = true) {
|
||||
this.$axios.post("/platform/proposal/seconded/updateInfo", {
|
||||
proposalId: this.row.id,
|
||||
taskActorUserId: this.row.taskActorUserId,
|
||||
@@ -177,8 +177,8 @@ layout("/layouts/platform.html"){
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.guava.index()
|
||||
this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
if(flag) this.$message.success(res.msg)
|
||||
this.doSearch()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
+12
-12
@@ -13,9 +13,9 @@ layout("/layouts/platform.html"){
|
||||
v-for="item in sessionOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item>
|
||||
<search-item label="名称/编号">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
style="width: 90%" v-model="pageForm.searchKeyword">
|
||||
v-model="pageForm.searchKeyword">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 110px;"
|
||||
v-model="pageForm.searchName">
|
||||
<el-option label="提案名称" value="proposalName"></el-option>
|
||||
@@ -23,10 +23,10 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</el-input>
|
||||
</search-item>
|
||||
<search-item>
|
||||
<search-item label="提案人">
|
||||
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
|
||||
style="width: 90%" v-model="pageForm.searchKeyword2">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 100px;"
|
||||
v-model="pageForm.searchKeyword2">
|
||||
<el-select placeholder="查询类型" slot="prepend" style="width: 110px;"
|
||||
v-model="pageForm.searchName2">
|
||||
<el-option label="提案人" value="su.username"></el-option>
|
||||
<!-- <el-option label="附议人" value="seconded.username"></el-option>-->
|
||||
@@ -36,6 +36,7 @@ layout("/layouts/platform.html"){
|
||||
</search>
|
||||
</el-card>
|
||||
<el-card shadow="never">
|
||||
<table-tool label="提案列表" :columns.sync="tableColumns"></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod" fixed="left"></el-table-column>
|
||||
<el-table-column
|
||||
@@ -60,7 +61,7 @@ layout("/layouts/platform.html"){
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="300px">
|
||||
<el-table-column label="操作" fixed="right" width="120px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
</template>
|
||||
@@ -95,7 +96,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include('../../common/info.js'){}#-->
|
||||
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
@@ -119,8 +120,10 @@ layout("/layouts/platform.html"){
|
||||
{label: "团长审核", prop: "delegationAudit"},
|
||||
],
|
||||
pageForm: {
|
||||
approval: false
|
||||
},
|
||||
approval: false,
|
||||
searchName: "proposalName",
|
||||
searchName2: "su.username",
|
||||
},
|
||||
showApprovalForm: false,
|
||||
sessionOptions: []
|
||||
}
|
||||
@@ -149,9 +152,6 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
created() {
|
||||
this.pageData()
|
||||
|
||||
// 加载教代会信息
|
||||
this.listOpenSession()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
+46
-45
@@ -9,9 +9,7 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never">
|
||||
<snaker-start slot="header" label="撰写提案" define_key="JDHTA">
|
||||
<template slot="header-right-label">
|
||||
<span style="margin-right: 15px" v-if="!formData.id">
|
||||
<el-link type="success" @click="openImport">导入</el-link>
|
||||
</span>
|
||||
<el-link type="primary" @click="openImport" v-if="!formData.id" style="margin-right: 15px">导入提案</el-link>
|
||||
</template>
|
||||
</snaker-start>
|
||||
<template>
|
||||
@@ -186,49 +184,52 @@ layout("/layouts/platform.html"){
|
||||
:close-on-click-modal="false"
|
||||
width="50%"
|
||||
>
|
||||
<el-timeline-item timestamp="下载模板" placement="top">
|
||||
<el-card>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-radio-group v-model="importTemplateType">
|
||||
<el-radio :label="1">excel</el-radio>
|
||||
<el-radio :label="2">word</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" style="margin-top: 20px;">
|
||||
<el-col :span="24">
|
||||
<el-button size="medium" type="" style="width: 200px"
|
||||
@click="downloadTemplate"
|
||||
icon="el-icon-download">下载模板
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item timestamp="上传文件" placement="top">
|
||||
<el-card>
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
:on-remove="(file, fileList) => {
|
||||
<el-timeline>
|
||||
<el-timeline-item timestamp="下载模板" placement="top">
|
||||
<el-card>
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="24">
|
||||
<el-radio-group v-model="importTemplateType">
|
||||
<el-radio :label="1">excel</el-radio>
|
||||
<el-radio :label="2">word</el-radio>
|
||||
</el-radio-group>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="24" style="margin-top: 20px;">
|
||||
<el-col :span="24">
|
||||
<el-button size="medium" type="" style="width: 200px"
|
||||
@click="downloadTemplate"
|
||||
icon="el-icon-download">下载模板
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
<el-timeline-item timestamp="上传文件" placement="top">
|
||||
<el-card>
|
||||
<el-upload
|
||||
name="file"
|
||||
ref="upload"
|
||||
:on-remove="(file, fileList) => {
|
||||
importData.fileList = fileHandleRemove(file, fileList)
|
||||
}"
|
||||
:on-change="(file, fileList) => {
|
||||
:on-change="(file, fileList) => {
|
||||
if(this.importTemplateType === 2) {
|
||||
importData.fileList = fileHandleChange(file, fileList,{type:['docx']})
|
||||
} else {
|
||||
importData.fileList = fileHandleChange(file, fileList,{type:['xlsx']})
|
||||
}
|
||||
}"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
:file-list="importData.fileList">
|
||||
<el-button size="medium" type="" icon="el-icon-upload" style="width: 200px">选择文件
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
:file-list="importData.fileList">
|
||||
<el-button size="medium" type="" icon="el-icon-upload" style="width: 200px">选择文件
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="importVisible = false" :disabled="importLoading">取 消</el-button>
|
||||
<el-button type="primary" @click="doImport" :loading="importLoading">确定</el-button>
|
||||
@@ -245,14 +246,14 @@ layout("/layouts/platform.html"){
|
||||
return {
|
||||
bizId: GetQueryString("bizId"),
|
||||
taskId: GetQueryString("taskId"),
|
||||
|
||||
|
||||
// 将 window.location 的引用存储在响应式数据中
|
||||
location: window.location,
|
||||
importTemplateType: 1,
|
||||
importData: {},
|
||||
importVisible: false,
|
||||
importLoading: false,
|
||||
|
||||
|
||||
formData: {},
|
||||
sessionOptions: [],
|
||||
sourceOptions: [],
|
||||
@@ -356,7 +357,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// 打开导入窗口
|
||||
async openImport() {
|
||||
this.importData = {
|
||||
@@ -364,7 +365,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.importVisible = true;
|
||||
},
|
||||
|
||||
|
||||
// 下载导入模板
|
||||
async downloadTemplate() {
|
||||
let templateType = '.xlsx'
|
||||
@@ -373,7 +374,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
this.location.href='/platform/basics/downloadTemplate?filePath=proposal/proposal' + templateType + '&fileName=教职工代表大会提案表' + templateType
|
||||
},
|
||||
|
||||
|
||||
// 开始导入数据
|
||||
async doImport() {
|
||||
if (!this.importData.fileList.length) {
|
||||
@@ -517,7 +518,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 查询字典 撰写方式
|
||||
async getDictByCode(code) {
|
||||
const res = await $.get("/platform/proposal/write/listSourceByCode", {code: code})
|
||||
@@ -567,7 +568,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.formData, "mobile", this.$store.state.user.mobile)
|
||||
this.$set(this.formData, "unitName", this.$store.state.user.unit?.name)
|
||||
}
|
||||
|
||||
|
||||
// 撰写方式
|
||||
this.allSourceOptions = await this.getDictByCode("PROPOSAL_SOURCE")
|
||||
this.sourceOptions = this.allSourceOptions
|
||||
|
||||
Reference in New Issue
Block a user