|
@@ -72,7 +72,20 @@
|
|
|
class="item-content"
|
|
class="item-content"
|
|
|
v-if="item.type == 'input' || item.type == 'textarea'"
|
|
v-if="item.type == 'input' || item.type == 'textarea'"
|
|
|
>
|
|
>
|
|
|
- 【答案】:<el-button type="primary" size="mini" @click="showItemResult(item)">查看详情</el-button>
|
|
|
|
|
|
|
+ 【答案】:<el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="showItemResult(item)"
|
|
|
|
|
+ >查看详情</el-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="item-content" v-if="item.type == 'image'">
|
|
|
|
|
+ 【答案】:<el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="showItemResult(item)"
|
|
|
|
|
+ >查看详情</el-button
|
|
|
|
|
+ >
|
|
|
</div>
|
|
</div>
|
|
|
<div
|
|
<div
|
|
|
class="item-content"
|
|
class="item-content"
|
|
@@ -98,69 +111,83 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- 查看答题详情 -->
|
|
|
|
|
|
|
+ <!-- 查看答题详情 -->
|
|
|
<el-dialog
|
|
<el-dialog
|
|
|
- :title="dialogTitle"
|
|
|
|
|
- :close-on-click-modal="false"
|
|
|
|
|
- :visible.sync="dialogVisible"
|
|
|
|
|
- >
|
|
|
|
|
- <div class="content">
|
|
|
|
|
- <div class="filter">
|
|
|
|
|
- <el-form
|
|
|
|
|
- size="small"
|
|
|
|
|
- label-width="70px"
|
|
|
|
|
- :inline="true"
|
|
|
|
|
- label-position="left"
|
|
|
|
|
|
|
+ :title="dialogTitle"
|
|
|
|
|
+ :close-on-click-modal="false"
|
|
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <div class="filter">
|
|
|
|
|
+ <el-form
|
|
|
|
|
+ size="small"
|
|
|
|
|
+ label-width="70px"
|
|
|
|
|
+ :inline="true"
|
|
|
|
|
+ label-position="left"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-form-item label="">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ clearable
|
|
|
|
|
+ placeholder="请输入标题"
|
|
|
|
|
+ v-model="form.name"
|
|
|
|
|
+ @clear="search"
|
|
|
|
|
+ @keyup.enter.native="search"
|
|
|
|
|
+ ></el-input>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-button type="primary" @click="search">搜索</el-button>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item style="float: right">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ icon="el-icon-download"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ @click="downloadItem(cur_item)"
|
|
|
|
|
+ >导出excel</el-button
|
|
|
>
|
|
>
|
|
|
- <el-form-item label="">
|
|
|
|
|
- <el-input
|
|
|
|
|
- clearable
|
|
|
|
|
- placeholder="请输入标题"
|
|
|
|
|
- v-model="form.name"
|
|
|
|
|
- @clear="search"
|
|
|
|
|
- @keyup.enter.native="search"
|
|
|
|
|
- ></el-input>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item>
|
|
|
|
|
- <el-button type="primary" @click="search">搜索</el-button>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item style="float: right">
|
|
|
|
|
- <el-button
|
|
|
|
|
- type="primary"
|
|
|
|
|
- icon="el-icon-download"
|
|
|
|
|
- size="mini"
|
|
|
|
|
- @click="downloadItem(cur_item)"
|
|
|
|
|
- >导出excel</el-button
|
|
|
|
|
- >
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-form>
|
|
|
|
|
- </div>
|
|
|
|
|
- <el-table
|
|
|
|
|
- class="table"
|
|
|
|
|
- :data="analyseDataList"
|
|
|
|
|
- height="50vh"
|
|
|
|
|
- border
|
|
|
|
|
- v-loading="loading"
|
|
|
|
|
- default-expand-all
|
|
|
|
|
- row-key="id"
|
|
|
|
|
- style="width: 100%"
|
|
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-table
|
|
|
|
|
+ class="table"
|
|
|
|
|
+ :data="analyseDataList"
|
|
|
|
|
+ height="50vh"
|
|
|
|
|
+ border
|
|
|
|
|
+ v-loading="loading"
|
|
|
|
|
+ default-expand-all
|
|
|
|
|
+ row-key="id"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-table-column label="序号" type="index" width="50" align="center">
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <template v-for="(item, key) in this.headers">
|
|
|
|
|
+ <el-table-column
|
|
|
|
|
+ v-if="curItemType=='image'"
|
|
|
|
|
+ :key="key"
|
|
|
|
|
+ :prop="item"
|
|
|
|
|
+ :label="item"
|
|
|
>
|
|
>
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <img :src="url" alt="" v-for="(url,iindex) in scope.row[item]" :key="iindex" width="80" height="60">
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
<el-table-column
|
|
|
- label="序号"
|
|
|
|
|
- type="index"
|
|
|
|
|
- width="50"
|
|
|
|
|
- align="center">
|
|
|
|
|
-</el-table-column>
|
|
|
|
|
- <el-table-column v-for="(item, key) in this.headers" :key="key" :prop="item" :label="item"> </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- <Page
|
|
|
|
|
- ref="pageButton"
|
|
|
|
|
- :current="form.page"
|
|
|
|
|
- :page_size="form.page_size"
|
|
|
|
|
- :total="total"
|
|
|
|
|
- @pageChange="gopage"
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ v-else
|
|
|
|
|
+ :key="key"
|
|
|
|
|
+ :prop="item"
|
|
|
|
|
+ :label="item"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <Page
|
|
|
|
|
+ ref="pageButton"
|
|
|
|
|
+ :current="form.page"
|
|
|
|
|
+ :page_size="form.page_size"
|
|
|
|
|
+ :total="total"
|
|
|
|
|
+ @pageChange="gopage"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
</section>
|
|
</section>
|
|
|
</template>
|
|
</template>
|
|
@@ -174,15 +201,16 @@ export default {
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
// checked: [],
|
|
// checked: [],
|
|
|
- form:{},
|
|
|
|
|
|
|
+ curItemType:'',
|
|
|
|
|
+ form: {},
|
|
|
total: 1,
|
|
total: 1,
|
|
|
loading: false,
|
|
loading: false,
|
|
|
results: [],
|
|
results: [],
|
|
|
- dialogTitle:"",
|
|
|
|
|
- dialogVisible:false,
|
|
|
|
|
- analyseDataList:[],
|
|
|
|
|
- headers:[],
|
|
|
|
|
- cur_item:null
|
|
|
|
|
|
|
+ dialogTitle: "",
|
|
|
|
|
+ dialogVisible: false,
|
|
|
|
|
+ analyseDataList: [],
|
|
|
|
|
+ headers: [],
|
|
|
|
|
+ cur_item: null,
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
filters: {
|
|
filters: {
|
|
@@ -258,18 +286,19 @@ export default {
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
showItemResult(item) {
|
|
showItemResult(item) {
|
|
|
- this.dialogTitle = '"'+item.label+'"答案详情'
|
|
|
|
|
|
|
+ this.curItemType = item.type
|
|
|
|
|
+ this.dialogTitle = '"' + item.label + '"答案详情';
|
|
|
let message_id = this.$route.query.id;
|
|
let message_id = this.$route.query.id;
|
|
|
let type = this.$route.query.type;
|
|
let type = this.$route.query.type;
|
|
|
var parm = this.form;
|
|
var parm = this.form;
|
|
|
- parm.message_id = message_id
|
|
|
|
|
- parm.type = type
|
|
|
|
|
- parm.item = item.label
|
|
|
|
|
- this.$api.showAnalyseItem(parm).then((res)=>{
|
|
|
|
|
- let data = res.data.data
|
|
|
|
|
- this.headers = Object.keys(data[0])
|
|
|
|
|
- this.analyseDataList = data
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ parm.message_id = message_id;
|
|
|
|
|
+ parm.type = type;
|
|
|
|
|
+ parm.item = item.label;
|
|
|
|
|
+ this.$api.showAnalyseItem(parm).then((res) => {
|
|
|
|
|
+ let data = res.data.data;
|
|
|
|
|
+ this.headers = Object.keys(data[0]);
|
|
|
|
|
+ this.analyseDataList = data;
|
|
|
|
|
+ });
|
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
|
this.cur_item = item;
|
|
this.cur_item = item;
|
|
|
},
|
|
},
|
|
@@ -278,14 +307,14 @@ export default {
|
|
|
let parm = this.form;
|
|
let parm = this.form;
|
|
|
let message_id = this.$route.query.id;
|
|
let message_id = this.$route.query.id;
|
|
|
let type = this.$route.query.type;
|
|
let type = this.$route.query.type;
|
|
|
- parm.message_id = message_id
|
|
|
|
|
- parm.type = type
|
|
|
|
|
- parm.item = item.label
|
|
|
|
|
- this.$api.showAnalyseItem(parm).then((res)=>{
|
|
|
|
|
- let data = res.data.data
|
|
|
|
|
- this.headers = Object.keys(data[0])
|
|
|
|
|
- this.analyseDataList = data
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ parm.message_id = message_id;
|
|
|
|
|
+ parm.type = type;
|
|
|
|
|
+ parm.item = item.label;
|
|
|
|
|
+ this.$api.showAnalyseItem(parm).then((res) => {
|
|
|
|
|
+ let data = res.data.data;
|
|
|
|
|
+ this.headers = Object.keys(data[0]);
|
|
|
|
|
+ this.analyseDataList = data;
|
|
|
|
|
+ });
|
|
|
},
|
|
},
|
|
|
getData() {
|
|
getData() {
|
|
|
let message_id = this.$route.query.id;
|
|
let message_id = this.$route.query.id;
|
|
@@ -328,22 +357,22 @@ export default {
|
|
|
"#F0805A",
|
|
"#F0805A",
|
|
|
"#26C0C0",
|
|
"#26C0C0",
|
|
|
];
|
|
];
|
|
|
- let pieColors = []
|
|
|
|
|
|
|
+ let pieColors = [];
|
|
|
item.items.forEach((item, index) => {
|
|
item.items.forEach((item, index) => {
|
|
|
dataPie.push({
|
|
dataPie.push({
|
|
|
name: item.label,
|
|
name: item.label,
|
|
|
value: item.times,
|
|
value: item.times,
|
|
|
- color:colors[index],
|
|
|
|
|
- itemStyle : {
|
|
|
|
|
- normal : {
|
|
|
|
|
- label : {
|
|
|
|
|
- show : true,
|
|
|
|
|
- color:colors[index]
|
|
|
|
|
|
|
+ color: colors[index],
|
|
|
|
|
+ itemStyle: {
|
|
|
|
|
+ normal: {
|
|
|
|
|
+ label: {
|
|
|
|
|
+ show: true,
|
|
|
|
|
+ color: colors[index],
|
|
|
|
|
+ },
|
|
|
|
|
+ labelLine: {
|
|
|
|
|
+ show: true,
|
|
|
|
|
+ color: colors[index],
|
|
|
},
|
|
},
|
|
|
- labelLine : {
|
|
|
|
|
- show : true,
|
|
|
|
|
- color:colors[index]
|
|
|
|
|
- }
|
|
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
@@ -354,10 +383,15 @@ export default {
|
|
|
itemStyle: { color: colors[index] },
|
|
itemStyle: { color: colors[index] },
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
- dataPie = dataPie.filter(function(x){if(x.value==0){return false}return true})
|
|
|
|
|
- dataPie.forEach((item,index)=>{
|
|
|
|
|
- pieColors.push(item.color)
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ dataPie = dataPie.filter(function (x) {
|
|
|
|
|
+ if (x.value == 0) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ });
|
|
|
|
|
+ dataPie.forEach((item, index) => {
|
|
|
|
|
+ pieColors.push(item.color);
|
|
|
|
|
+ });
|
|
|
let option = {
|
|
let option = {
|
|
|
title: {
|
|
title: {
|
|
|
subtext: "填报次数",
|
|
subtext: "填报次数",
|
|
@@ -399,8 +433,8 @@ export default {
|
|
|
// },
|
|
// },
|
|
|
formatter: function (value, index) {
|
|
formatter: function (value, index) {
|
|
|
// 10 6 这些你自定义就行
|
|
// 10 6 这些你自定义就行
|
|
|
- var v = value.substring(0, 6) + '...'
|
|
|
|
|
- return value.length > 10 ? v : value
|
|
|
|
|
|
|
+ var v = value.substring(0, 6) + "...";
|
|
|
|
|
+ return value.length > 10 ? v : value;
|
|
|
},
|
|
},
|
|
|
// x轴字体颜色
|
|
// x轴字体颜色
|
|
|
textStyle: {
|
|
textStyle: {
|
|
@@ -519,7 +553,7 @@ export default {
|
|
|
// }
|
|
// }
|
|
|
|
|
|
|
|
// },
|
|
// },
|
|
|
- data: dataPie.sort(function (a, b) {
|
|
|
|
|
|
|
+ data: dataPie.sort(function (a, b) {
|
|
|
return a.value - b.value;
|
|
return a.value - b.value;
|
|
|
}),
|
|
}),
|
|
|
animationType: "scale",
|
|
animationType: "scale",
|