Compare commits

..

No commits in common. "d37c44a26866f77075661c5e8b9e74cf7dc13d86" and "42c1b56dda5f74d72e236425bc89f7a622473e76" have entirely different histories.

8 changed files with 121 additions and 295 deletions

View File

@ -1,115 +1,109 @@
<template> <template>
<!--FEEDBACK--> <!--MFA-->
<div v-if="visible" @click.stop="()=>false"> <el-dialog
<el-dialog v-if="visible"
:visible.sync="visible" :visible.sync="visible"
v-dialogDrag v-dialogDrag
width="540px" width="540px"
:close-on-click-modal="false" :close-on-click-modal="false"
@close="cancel" append-to-body
> @close="cancel"
<div slot="title"> >
{{ title }} <div slot="title">
</div> {{ title }}
<!-- 项目详情 --> </div>
<div class="trialsBox"> <!-- 项目详情 -->
<el-form <div class="trialsBox">
label-position="right"
:model="form"
:inline="true"
class="trialsForm"
>
<el-form-item :label="$t('feedBack:trials:code')">
<span>2024-06-28 15:00</span>
</el-form-item>
<el-form-item :label="$t('feedBack:trials:name')">
<span>2024-06-28 15:00</span>
</el-form-item>
<el-form-item :label="$t('feedBack:trials:siteCode')">
<span>2024-06-28 15:00</span>
</el-form-item>
<el-form-item :label="$t('feedBack:trials:visit')">
<span>2024-06-28 15:00</span>
</el-form-item>
</el-form>
</div>
<el-form <el-form
ref="mfaForm"
label-position="right" label-position="right"
:model="form" :model="form"
:rules="rules" :inline="true"
label-width="100px" class="trialsForm"
> >
<!-- 影像异常tip --> <el-form-item :label="$t('feedBack:trials:code')">
<p class="tip">
<i
class="el-icon-warning-outline"
style="color: #f56c6c; font-size: 24px"
></i>
<span> 影像异常导致无法阅片</span>
</p>
<!-- 问题反馈 -->
<el-form-item :label="$t('feedBack:form:feedBack')" prop="feedBack">
<el-select v-model="form.value" style="width: 100%">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<span>影像异常导致无法阅片</span>
</el-form-item>
<!-- 问题描述 -->
<el-form-item
:label="$t('feedBack:form:description')"
prop="description"
>
<el-input v-model="form.Code" type="textarea" :rows="4" />
</el-form-item>
<!-- 截图 -->
<el-form-item :label="$t('feedBack:form:screenshot')" prop="screenshot">
<uploadImage
:path.sync="form.HospitalLogoPath"
:disabled="disabled"
/>
</el-form-item>
<!-- 反馈时间 -->
<el-form-item :label="$t('feedBack:form:time')" prop="screenshot">
<span>2024-06-28 15:00</span> <span>2024-06-28 15:00</span>
</el-form-item> </el-form-item>
<!-- 状态 --> <el-form-item :label="$t('feedBack:trials:name')">
<el-form-item :label="$t('feedBack:form:status')" prop="screenshot"> <span>2024-06-28 15:00</span>
<el-switch </el-form-item>
v-model="form.status" <el-form-item :label="$t('feedBack:trials:siteCode')">
active-color="#13ce66" <span>2024-06-28 15:00</span>
inactive-color="#ff4949" </el-form-item>
:active-value="true" <el-form-item :label="$t('feedBack:trials:visit')">
:inactive-value="false" <span>2024-06-28 15:00</span>
:active-text="$fd('FeedBackStatus', true)"
:inactive-text="$fd('FeedBackStatus', false)"
>
</el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> </div>
<!-- 取消 --> <el-form
<el-button size="small" @click.stop="cancel"> ref="mfaForm"
{{ $t("feedBack:button:cancel") }} label-position="right"
</el-button> :model="form"
<!-- 保存 --> :rules="rules"
<el-button label-width="100px"
type="primary" >
size="small" <!-- 影像异常tip -->
@click.stop="save" <p class="tip">
:loading="loading" <i
class="el-icon-warning-outline"
style="color: #f56c6c; font-size: 24px"
></i>
<span> 影像异常导致无法阅片</span>
</p>
<!-- 问题反馈 -->
<el-form-item :label="$t('feedBack:form:feedBack')" prop="feedBack">
<el-select v-model="form.value" style="width: 100%">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<span>影像异常导致无法阅片</span>
</el-form-item>
<!-- 问题描述 -->
<el-form-item :label="$t('feedBack:form:description')" prop="description">
<el-input v-model="form.Code" type="textarea" :rows="4" />
</el-form-item>
<!-- 截图 -->
<el-form-item :label="$t('feedBack:form:screenshot')" prop="screenshot">
<uploadImage :path.sync="form.HospitalLogoPath" :disabled="disabled" />
</el-form-item>
<!-- 反馈时间 -->
<el-form-item :label="$t('feedBack:form:time')" prop="screenshot">
<span>2024-06-28 15:00</span>
</el-form-item>
<!-- 状态 -->
<el-form-item :label="$t('feedBack:form:status')" prop="screenshot">
<el-switch
v-model="form.status"
active-color="#13ce66"
inactive-color="#ff4949"
:active-value="true"
:inactive-value="false"
:active-text="$fd('FeedBackStatus', true)"
:inactive-text="$fd('FeedBackStatus', false)"
> >
{{ $t("feedBack:button:save") }} </el-switch>
</el-button> </el-form-item>
</div> </el-form>
</el-dialog> <div slot="footer">
</div> <!-- 取消 -->
<el-button size="small" @click.stop="cancel">
{{ $t("feedBack:button:cancel") }}
</el-button>
<!-- 保存 -->
<el-button
type="primary"
size="small"
@click.stop="save"
:loading="loading"
>
{{ $t("feedBack:button:save") }}
</el-button>
</div>
</el-dialog>
</template> </template>
<script> <script>
import uploadImage from "./uploadImage.vue"; import uploadImage from "./uploadImage.vue";

View File

@ -1,23 +0,0 @@
import Vue from "vue";
import FEEDBACKCOMP from "./index.vue";
const FBConstructor = Vue.extend(FEEDBACKCOMP);
const FBT = options => {
// const { cancelBack } = options;
// if (!UserId) throw `UserId is requred.but ${UserId}`
const id = `FB${new Date().getTime()}`;
const instance = new FBConstructor();
instance.id = id;
instance.vm = instance.$mount();
if (instance.vm.visible) return;
document.body.appendChild(instance.vm.$el);
instance.vm.open();
instance.vm.$on("success", (Id) => {
});
instance.vm.$on("closed", () => {
document.body.removeChild(instance.vm.$el);
instance.vm.$destroy();
});
return instance.vm;
}
export default FBT;

View File

@ -1,7 +0,0 @@
import FEEDBACKCOMP from "./index.vue";
import FBT from "./fun";
export default Vue => {
Vue.component(FEEDBACKCOMP.name, FEEDBACKCOMP);
Vue.prototype.$FBT = FBT;
};

View File

@ -1,48 +0,0 @@
<template>
<div v-if="visible" @click.stop="()=>false">
<el-dialog
:visible.sync="visible"
v-dialogDrag
width="1200px"
:close-on-click-modal="false"
@close="cancel"
>
<div slot="title">
{{ title }}
</div>
<feedBackTable />
</el-dialog>
</div>
</template>
<script>
import feedBackTable from "@/views/feedBack/index.vue";
export default {
name: "FBT",
components: { feedBackTable },
data() {
return {
title: null,
visible: false,
};
},
computed: {
disabled() {
return false;
},
},
methods: {
open(data) {
this.visible = true;
},
cancel() {
this.visible = false;
this.$emit("closed");
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog__body {
padding-bottom: 0;
}
</style>

View File

@ -62,8 +62,6 @@ import MFA from '@/components/MFA/index'
Vue.use(MFA) Vue.use(MFA)
import FB from '@/components/feedBack/index' import FB from '@/components/feedBack/index'
Vue.use(FB) Vue.use(FB)
import FBT from '@/components/feedBackTable/index'
Vue.use(FBT)
import adaptive from '@/directive/adaptive/index' import adaptive from '@/directive/adaptive/index'
// 表格自适应指令 // 表格自适应指令
Vue.use(adaptive) Vue.use(adaptive)

View File

@ -3,39 +3,16 @@
<div ref="leftContainer" class="left"> <div ref="leftContainer" class="left">
<el-form :inline="true"> <el-form :inline="true">
<!--项目编号/实验名称--> <!--项目编号/实验名称-->
<el-form-item :label="$t('feedBack:search:trials')" v-if="level > 8"> <el-form-item :label="$t('feedBack:search:trials')">
<el-input <el-input v-model="searchData.a" clearable></el-input>
v-model="searchData.a"
clearable
style="width: 150px"
></el-input>
</el-form-item>
<!--中心-->
<el-form-item :label="$t('feedBack:search:site')" v-if="level > 7">
<el-input
v-model="searchData.a"
clearable
style="width: 150px"
></el-input>
</el-form-item> </el-form-item>
<!--受试者访视--> <!--受试者访视-->
<el-form-item <el-form-item :label="$t('feedBack:search:subjectVisit')">
:label="$t('feedBack:search:subjectVisit')" <el-input v-model="searchData.a" clearable></el-input>
v-if="level > 7"
>
<el-input
v-model="searchData.a"
clearable
style="width: 150px"
></el-input>
</el-form-item> </el-form-item>
<!--角色--> <!--角色-->
<el-form-item :label="$t('feedBack:search:role')" v-if="level > 7"> <el-form-item :label="$t('feedBack:search:role')">
<el-select <el-select v-model="searchData.NoticeTypeEnum" clearable size="small">
v-model="searchData.NoticeTypeEnum"
clearable
style="width: 150px"
>
<el-option <el-option
v-for="item of $d.NoteType" v-for="item of $d.NoteType"
:key="item.value" :key="item.value"
@ -45,20 +22,12 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--反馈人--> <!--反馈人-->
<el-form-item :label="$t('feedBack:search:user')" v-if="level > 7"> <el-form-item :label="$t('feedBack:search:user')">
<el-input <el-input v-model="searchData.a" clearable></el-input>
v-model="searchData.a"
clearable
style="width: 150px"
></el-input>
</el-form-item> </el-form-item>
<!--问题类型--> <!--问题类型-->
<el-form-item :label="$t('feedBack:search:questionType')"> <el-form-item :label="$t('feedBack:search:questionType')">
<el-select <el-select v-model="searchData.NoticeTypeEnum" clearable size="small">
v-model="searchData.NoticeTypeEnum"
clearable
style="width: 150px"
>
<el-option <el-option
v-for="item of $d.NoteType" v-for="item of $d.NoteType"
:key="item.value" :key="item.value"
@ -69,19 +38,11 @@
</el-form-item> </el-form-item>
<!--问题描述--> <!--问题描述-->
<el-form-item :label="$t('feedBack:search:description')"> <el-form-item :label="$t('feedBack:search:description')">
<el-input <el-input v-model="searchData.a" clearable></el-input>
v-model="searchData.a"
clearable
style="width: 150px"
></el-input>
</el-form-item> </el-form-item>
<!--状态--> <!--状态-->
<el-form-item :label="$t('feedBack:search:status')" v-if="level > 7"> <el-form-item :label="$t('feedBack:search:status')">
<el-select <el-select v-model="searchData.NoticeTypeEnum" clearable size="small">
v-model="searchData.NoticeTypeEnum"
clearable
style="width: 150px"
>
<el-option <el-option
v-for="item of $d.NoteType" v-for="item of $d.NoteType"
:key="item.value" :key="item.value"
@ -90,7 +51,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!--反馈日期--> <!--最新接受日期-->
<el-form-item :label="$t('feedBack:search:time')"> <el-form-item :label="$t('feedBack:search:time')">
<el-date-picker <el-date-picker
v-model="datetimerange" v-model="datetimerange"
@ -100,7 +61,6 @@
:end-placeholder="$t('feedBack:search:endTime')" :end-placeholder="$t('feedBack:search:endTime')"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
@change="handleDatetimeChange" @change="handleDatetimeChange"
style="width: 250px"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -120,12 +80,7 @@
> >
{{ $t("common:button:reset") }} {{ $t("common:button:reset") }}
</el-button> </el-button>
<el-button <el-button type="primary" size="mini" @click="report">
type="primary"
size="mini"
@click="report"
v-if="level > 7"
>
{{ $t("common:button:export") }} {{ $t("common:button:export") }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -134,7 +89,6 @@
size="mini" size="mini"
@click="resolve" @click="resolve"
style="float: right" style="float: right"
v-if="level > 7"
> >
{{ $t("feedBack:button:resolve") }} {{ $t("feedBack:button:resolve") }}
</el-button> </el-button>
@ -149,20 +103,13 @@
@sort-change="handleSortByColumn" @sort-change="handleSortByColumn"
:default-sort="{ prop: 'StudyTime', order: 'descending' }" :default-sort="{ prop: 'StudyTime', order: 'descending' }"
> >
<el-table-column <el-table-column type="selection" align="center" width="45" />
type="selection"
align="center"
width="45"
v-if="level > 7"
/>
<el-table-column type="index" width="50" />
<el-table-column <el-table-column
:label="$t('feedBack:form:trialCode')" :label="$t('feedBack:form:trialCode')"
prop="NoticeLevelEnum" prop="NoticeLevelEnum"
min-width="120" min-width="120"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 8"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:study')" :label="$t('feedBack:form:study')"
@ -170,7 +117,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 8"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:siteCode')" :label="$t('feedBack:form:siteCode')"
@ -178,7 +124,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:subjectVisit')" :label="$t('feedBack:form:subjectVisit')"
@ -186,7 +131,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:role')" :label="$t('feedBack:form:role')"
@ -194,7 +138,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:user')" :label="$t('feedBack:form:user')"
@ -202,7 +145,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:questionType')" :label="$t('feedBack:form:questionType')"
@ -231,7 +173,6 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('feedBack:form:uploadTime')" :label="$t('feedBack:form:uploadTime')"
@ -239,17 +180,16 @@
min-width="100" min-width="100"
show-overflow-tooltip show-overflow-tooltip
sortable="custom" sortable="custom"
v-if="level > 7"
/> />
<el-table-column <el-table-column
:label="$t('common:action:action')" :label="$t('common:action:action')"
fixed="right" fixed="right"
prop="UserTypeShortName" prop="UserTypeShortName"
width="80" min-width="200"
show-overflow-tooltip show-overflow-tooltip
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" @click="getDetail(scope.row)"> <el-button size="mini" type="text" @click="handleEdit(scope.row)">
{{ $t("common:button:view") }} {{ $t("common:button:view") }}
</el-button> </el-button>
</template> </template>
@ -267,6 +207,11 @@
</div> </div>
</template> </template>
<script> <script>
import {
getSystemNoticeList,
addOrUpdateSystemNotice,
} from "@/api/system/notice";
import { getUserTypeRoleList } from "@/api/admin";
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
const searchDataDefault = () => { const searchDataDefault = () => {
return { return {
@ -303,20 +248,6 @@ export default {
tableSelectData: [], tableSelectData: [],
}; };
}, },
computed: {
level() {
if (this.hasPermi(["role:dev", "role:admin"])) {
return 9;
}
if (this.hasPermi(["role:pm"])) {
return 8;
}
if (this.hasPermi(["role:ir", "role:crc"])) {
return 7;
}
return 0;
},
},
mounted() {}, mounted() {},
methods: { methods: {
getList() {}, getList() {},
@ -356,10 +287,6 @@ export default {
this.searchData.PageIndex = 1; this.searchData.PageIndex = 1;
this.getList(); this.getList();
}, },
//
getDetail() {
this.$FB();
},
}, },
}; };
</script> </script>

View File

@ -6,17 +6,14 @@
'feedBack-out': show === false, 'feedBack-out': show === false,
}" }"
@click.stop="open" @click.stop="open"
v-if="isShow"
> >
<i class="el-icon-chat-dot-square icon"></i> <i class="el-icon-chat-dot-square icon"></i>
<transition name="fade"> <transition name="fade">
<div class="checkBox" v-show="visible" @click.stop="()=>false"> <div class="checkBox" v-show="visible" @click.stop="false">
<span @click.stop="openFeedBack">{{ <span @click.stop="openFeedBack">{{
$t("triials:feedBack:botton:opinion") $t("triials:feedBack:botton:opinion")
}}</span> }}</span>
<span @click.stop="openFeedBackTable">{{ <span>{{ $t("triials:feedBack:botton:mine") }}</span>
$t("triials:feedBack:botton:mine")
}}</span>
</div> </div>
</transition> </transition>
</div> </div>
@ -40,14 +37,6 @@ export default {
} }
}); });
}, },
computed: {
isShow() {
if (this.hasPermi(["role:ir", "role:crc"])) {
return true;
}
return false;
},
},
methods: { methods: {
open() { open() {
if (this.show) { if (this.show) {
@ -64,10 +53,6 @@ export default {
}, },
}); });
}, },
//
openFeedBackTable() {
this.$FBT();
},
}, },
}; };
</script> </script>

View File

@ -6,7 +6,7 @@
</div> </div>
<trialsMain /> <trialsMain />
</div> </div>
<feedBack /> <!-- <feedBack /> -->
</div> </div>
</template> </template>