|
@@ -2,37 +2,100 @@
|
|
|
<div id="expertOpinion">
|
|
|
<el-row>
|
|
|
<el-col :span="24" class="main">
|
|
|
- test
|
|
|
+ <data-table :fields="fields" :opera="opera" :data="list" :total="total" @query="search" @view="toView"></data-table>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
+ <el-dialog class="dialog" title="意见详情" center width="40%" :visible.sync="dialog" @closed="handleClose" :destroy-on-close="true">
|
|
|
+ <el-col :span="24" class="one">
|
|
|
+ <el-col :span="24" class="info">
|
|
|
+ {{ form.content }}
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import dataTable from '@common/src/components/frame/filter-page-table.vue';
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: achieveExpert } = createNamespacedHelpers('achieveExpert');
|
|
|
export default {
|
|
|
name: 'expertOpinion',
|
|
|
props: {},
|
|
|
- components: {},
|
|
|
+ components: { dataTable },
|
|
|
data: function() {
|
|
|
- return {};
|
|
|
+ return {
|
|
|
+ list: [],
|
|
|
+ total: 0,
|
|
|
+ opera: [
|
|
|
+ {
|
|
|
+ label: '意见详情',
|
|
|
+ method: 'view',
|
|
|
+ display: i => i.verify && i.verify.content,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ fields: [
|
|
|
+ { label: '专家姓名', prop: 'expert_name', showTip: true },
|
|
|
+ { label: '专家电话', prop: 'phone', showTip: true },
|
|
|
+ { label: '专家评分', prop: 'verify.score', showTip: true },
|
|
|
+ ],
|
|
|
+ dialog: false,
|
|
|
+ form: {},
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...achieveExpert(['query']),
|
|
|
+ async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
+ const res = await this.query({ skip, limit, ...info, apply_id: this.id });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `list`, res.data);
|
|
|
+ this.$set(this, `total`, res.total);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ toView({ data }) {
|
|
|
+ this.$set(this, `form`, data.verify);
|
|
|
+ this.dialog = true;
|
|
|
+ },
|
|
|
+ // 取消查看
|
|
|
+ handleClose() {
|
|
|
+ this.form = {};
|
|
|
+ this.dialog = false;
|
|
|
+ },
|
|
|
},
|
|
|
- created() {},
|
|
|
- methods: {},
|
|
|
+
|
|
|
computed: {
|
|
|
...mapState(['user']),
|
|
|
+ id() {
|
|
|
+ return this.$route.query.id;
|
|
|
+ },
|
|
|
},
|
|
|
metaInfo() {
|
|
|
return { title: this.$route.meta.title };
|
|
|
},
|
|
|
- watch: {
|
|
|
- test: {
|
|
|
- deep: true,
|
|
|
- immediate: true,
|
|
|
- handler(val) {},
|
|
|
- },
|
|
|
- },
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style lang="less" scoped></style>
|
|
|
+<style lang="less" scoped>
|
|
|
+.dialog {
|
|
|
+ /deep/.el-dialog__body {
|
|
|
+ min-height: 330px;
|
|
|
+ padding: 0px 0px 10px 20px;
|
|
|
+ }
|
|
|
+ .one {
|
|
|
+ .text {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ margin: 0 0 5px 0;
|
|
|
+ }
|
|
|
+ .info {
|
|
|
+ font-size: 16px;
|
|
|
+ height: 325px;
|
|
|
+ overflow-y: auto;
|
|
|
+ line-height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|