|
@@ -0,0 +1,526 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div class="communal-list">
|
|
|
+ <div class="communal-title">
|
|
|
+ <div>邀请/公务活动资料</div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <div class="communal-box" style="margin-top: 10px;">
|
|
|
+ <el-autocomplete class="inline-input" v-model="Country" :fetch-suggestions="querySearchCountry"
|
|
|
+ placeholder="请输入国家" clearable></el-autocomplete>
|
|
|
+ <el-autocomplete class="inline-input" v-model="UnitName" :fetch-suggestions="querySearchUnitName"
|
|
|
+ placeholder="请输入邀请方" clearable></el-autocomplete>
|
|
|
+ <el-autocomplete class="inline-input" v-model="Contact" :fetch-suggestions="querySearchContact"
|
|
|
+ placeholder="联系人" clearable></el-autocomplete>
|
|
|
+ <el-select v-model="Delegation" clearable filterable placeholder="团组名称" style="width: 20%;">
|
|
|
+ <el-option v-for="item in restaurantDelegation" :key="item.id" :label="item.groupName"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-autocomplete class="inline-input" v-model="Field" :fetch-suggestions="querySearchField"
|
|
|
+ placeholder="领域" clearable></el-autocomplete>
|
|
|
+ <el-button type="primary" @click="QueryData" style="margin-left: 10px;">查询</el-button>
|
|
|
+ <div>
|
|
|
+ <router-link to='/home/OpInvitationOfficialActivityData'>
|
|
|
+ <el-button type="primary" style="margin-left: 10px;">新增</el-button>
|
|
|
+ </router-link>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="communal-box" style="margin-top: 10px;">
|
|
|
+ <el-select v-model="CreateUserId" placeholder="录入者" filterable clearable>
|
|
|
+ <el-option v-for="item in CreateUserList" :key="item.id" :label="item.cnName" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-date-picker v-model="InviteTime" type="daterange" align="right" unlink-panels format="yyyy-MM-dd"
|
|
|
+ value-format="yyyy-MM-dd" range-separator="至" start-placeholder="邀请开始日期" end-placeholder="邀请结束日期"
|
|
|
+ :picker-options="pickerOptions">
|
|
|
+ </el-date-picker>
|
|
|
+ <el-button type="primary" @click="QueryCount" style="margin-left: 10px;">查询录入数量</el-button>
|
|
|
+ <div style="display: flex;align-items: center;justify-content: center">
|
|
|
+ 查询结果:该人员在以上条件共录入<span style="color: red;">{{ dataCount }}</span>条数据
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template>
|
|
|
+ <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
|
|
|
+ style="width: 100%;margin-top: 10px;" v-loading="loading" element-loading-text="拼命加载中...">
|
|
|
+ <el-table-column prop="num" label="序 号" width="55">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="country" label="国家">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="city" label="城市">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="unitName" label="邀请方名称">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="field" label="涉及领域">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="contact" label="联系人">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="job" label="职务">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="tel" label="手机">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="delegationStr" label="关联团组">
|
|
|
+ <template slot-scope="Str">
|
|
|
+ <div :title="Str.row.delegationStr" class="title">{{ Str.row.delegationStr }}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="createUserName" label="录入者">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="createTime" label="录入时间">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
|
|
|
+ <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
+ <div class="block">
|
|
|
+ <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next" :total="tableDatas.length">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ tableData: [],
|
|
|
+ tableDatas: [],
|
|
|
+ currentPage: 1, // 当前页码
|
|
|
+ pageSize: 8,// 每页的数据条数
|
|
|
+ dataCount: 0,//总条数
|
|
|
+ Country: "",
|
|
|
+ restaurantsCountry: [],
|
|
|
+ UnitName: "",
|
|
|
+ restaurantsUnitName: [],
|
|
|
+ Contact: "",
|
|
|
+ restaurantContact: [],
|
|
|
+ Delegation: "",
|
|
|
+ restaurantDelegation: [],
|
|
|
+ Field: "",
|
|
|
+ restaurantField: [],
|
|
|
+ CreateUserId: "",
|
|
|
+ CreateUserList: [],
|
|
|
+ InviteTime: "",
|
|
|
+ StartCreateTime: "",
|
|
|
+ EndCreateTime: "",
|
|
|
+ input: '',
|
|
|
+ token: '',
|
|
|
+ pickerOptions: {
|
|
|
+ shortcuts: [{
|
|
|
+ text: '最近一周',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '最近一个月',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ text: '最近三个月',
|
|
|
+ onClick(picker) {
|
|
|
+ const end = new Date();
|
|
|
+ const start = new Date();
|
|
|
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
|
|
|
+ picker.$emit('pick', [start, end]);
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //每页条数改变时触发 选择一页显示多少行
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.currentPage = 1;
|
|
|
+ this.pageSize = val;
|
|
|
+ },
|
|
|
+ //当前页改变时触发 跳转其他页
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.currentPage = val;
|
|
|
+ },
|
|
|
+
|
|
|
+ //国家搜索框处理
|
|
|
+ querySearchCountry(queryString, cb) {
|
|
|
+ //数据去重处理
|
|
|
+ var arr = this.restaurantsCountry;
|
|
|
+ for (var i = 0; i < arr.length - 1; i++) {
|
|
|
+ for (var j = i + 1; j < arr.length; j++) {
|
|
|
+ if (arr[i].value == arr[j].value) {
|
|
|
+ arr.splice(j, 1);
|
|
|
+ //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
|
|
|
+ j--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var restaurantsCountry = arr;
|
|
|
+ var results = queryString ? restaurantsCountry.filter(this.createFilter(queryString)) : restaurantsCountry;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ //邀请方搜索框处理
|
|
|
+ querySearchUnitName(queryString, cb) {
|
|
|
+ var arr = this.restaurantsUnitName;
|
|
|
+ for (var i = 0; i < arr.length - 1; i++) {
|
|
|
+ for (var j = i + 1; j < arr.length; j++) {
|
|
|
+ if (arr[i].value == arr[j].value) {
|
|
|
+ arr.splice(j, 1);
|
|
|
+ //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
|
|
|
+ j--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var restaurantsUnitName = arr;
|
|
|
+ var results = queryString ? restaurantsUnitName.filter(this.createFilter(queryString)) : restaurantsUnitName;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ //联系人搜索框处理
|
|
|
+ querySearchContact(queryString, cb) {
|
|
|
+ var arr = this.restaurantContact;
|
|
|
+ for (var i = 0; i < arr.length - 1; i++) {
|
|
|
+ for (var j = i + 1; j < arr.length; j++) {
|
|
|
+ if (arr[i].value == arr[j].value) {
|
|
|
+ arr.splice(j, 1);
|
|
|
+ //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
|
|
|
+ j--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var restaurantContact = arr;
|
|
|
+ var results = queryString ? restaurantContact.filter(this.createFilter(queryString)) : restaurantContact;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ //领域搜索框处理
|
|
|
+ querySearchField(queryString, cb) {
|
|
|
+ var arr = this.restaurantField;
|
|
|
+ for (var i = 0; i < arr.length - 1; i++) {
|
|
|
+ for (var j = i + 1; j < arr.length; j++) {
|
|
|
+ if (arr[i].value == arr[j].value) {
|
|
|
+ arr.splice(j, 1);
|
|
|
+ //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
|
|
|
+ j--;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var restaurantField = arr;
|
|
|
+ var results = queryString ? restaurantField.filter(this.createFilter(queryString)) : restaurantField;
|
|
|
+ // 调用 callback 返回建议列表的数据
|
|
|
+ cb(results);
|
|
|
+ },
|
|
|
+ createFilter(queryString) {
|
|
|
+ return (restaurant) => {
|
|
|
+ return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ QueryData() {
|
|
|
+ this.QueryInvitationOfficialActivityData()
|
|
|
+ },
|
|
|
+ QueryInvitationOfficialActivityData() {
|
|
|
+ debugger
|
|
|
+ console.log(this.Delegation)
|
|
|
+ var CreateUser = 0;
|
|
|
+ if (this.CreateUserId == "" || this.CreateUserId == undefined || this.CreateUserId == null) {
|
|
|
+ CreateUser = 0
|
|
|
+ } else {
|
|
|
+ CreateUser = this.CreateUserId
|
|
|
+ }
|
|
|
+ if (this.InviteTime != "" && this.InviteTime != undefined && this.InviteTime != null) {
|
|
|
+ this.StartCreateTime = this.InviteTime[0]
|
|
|
+ this.EndCreateTime = this.InviteTime[1]
|
|
|
+ } else {
|
|
|
+ this.StartCreateTime = ""
|
|
|
+ this.EndCreateTime = ""
|
|
|
+ }
|
|
|
+ this.loading = true
|
|
|
+ var url = "/api/Resource/QueryInvitationOfficialActivityData"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ portType: 1,
|
|
|
+ pageIndex: 0,
|
|
|
+ pageSize: 0,
|
|
|
+ Country: that.Country,
|
|
|
+ UnitName: that.UnitName,
|
|
|
+ Contact: that.Contact,
|
|
|
+ Delegation: that.Delegation.toString(),
|
|
|
+ Field: that.Field,
|
|
|
+ CreateUserId: CreateUser,
|
|
|
+ StartCreateTime: that.StartCreateTime,
|
|
|
+ EndCreateTime: that.EndCreateTime
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ that.tableData = res.data.data;
|
|
|
+ //#region 国家输入推荐数据
|
|
|
+ that.tableData.forEach(function (item, index) {
|
|
|
+ that.restaurantsCountry.push({
|
|
|
+ value: item.country,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ //#endregion
|
|
|
+ //#region 邀请方输入推荐数据
|
|
|
+ that.tableData.forEach(function (item, index) {
|
|
|
+ that.restaurantsUnitName.push({
|
|
|
+ value: item.unitName,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ //#endregion
|
|
|
+ //#region 联系人输入推荐数据
|
|
|
+ that.tableData.forEach(function (item, index) {
|
|
|
+ that.restaurantContact.push({
|
|
|
+ value: item.contact,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ //#endregion
|
|
|
+ //#region 领域输入推荐数据
|
|
|
+ that.tableData.forEach(function (item, index) {
|
|
|
+ that.restaurantField.push({
|
|
|
+ value: item.field,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ //#endregion
|
|
|
+ that.tableDatas = that.tableData
|
|
|
+ if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
|
|
|
+ if (that.currentPage > 1) {
|
|
|
+ that.currentPage = that.currentPage - 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (that.CreateUserId != 0 && that.CreateUserId != "") {
|
|
|
+ that.dataCount = that.tableDatas.length
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ that.tableDatas = [];
|
|
|
+ }
|
|
|
+ that.loading = false
|
|
|
+ }).catch(function (error) {
|
|
|
+ that.loading = false
|
|
|
+ that.$message.error("网络错误,请稍后重试");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ QueryCount() {
|
|
|
+ var CreateUser = 0;
|
|
|
+ if (this.CreateUserId == "" || this.CreateUserId == undefined || this.CreateUserId == null) {
|
|
|
+ CreateUser = 0
|
|
|
+ } else {
|
|
|
+ CreateUser = this.CreateUserId
|
|
|
+ }
|
|
|
+ if (this.InviteTime != "" && this.InviteTime != undefined && this.InviteTime != null) {
|
|
|
+ this.StartCreateTime = this.InviteTime[0]
|
|
|
+ this.EndCreateTime = this.InviteTime[1]
|
|
|
+ } else {
|
|
|
+ this.StartCreateTime = ""
|
|
|
+ this.EndCreateTime = ""
|
|
|
+ }
|
|
|
+ this.loading = true
|
|
|
+ var url = "/api/Resource/QueryInvitationOfficialActivityData"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ portType: 1,
|
|
|
+ pageIndex: 0,
|
|
|
+ pageSize: 0,
|
|
|
+ Country: '',
|
|
|
+ UnitName: '',
|
|
|
+ Contact: '',
|
|
|
+ Delegation: '',
|
|
|
+ Field: '',
|
|
|
+ CreateUserId: CreateUser,
|
|
|
+ StartCreateTime: that.StartCreateTime,
|
|
|
+ EndCreateTime: that.EndCreateTime
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ that.tableData = res.data.data;
|
|
|
+ that.tableDatas = that.tableData
|
|
|
+ if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
|
|
|
+ if (that.currentPage > 1) {
|
|
|
+ that.currentPage = that.currentPage - 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (that.CreateUserId != 0 && that.CreateUserId != "") {
|
|
|
+ that.dataCount = that.tableDatas.length
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ that.tableDatas = [];
|
|
|
+ }
|
|
|
+ that.loading = false
|
|
|
+ }).catch(function (error) {
|
|
|
+ that.loading = false
|
|
|
+ that.$message.error("网络错误,请稍后重试");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //录入者数据
|
|
|
+ GetUserNameList() {
|
|
|
+ var url = "/api/System/GetUserNameList"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ PortType: 1
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ that.CreateUserList = res.data.data;
|
|
|
+
|
|
|
+ }
|
|
|
+ }).catch(function (error) {
|
|
|
+ that.$message.error("网络错误,请稍后重试");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //团组数据
|
|
|
+ GetGroupNameList() {
|
|
|
+
|
|
|
+ var url = "/api/Groups/GetGroupNameList"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ PortType: 1
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ debugger
|
|
|
+ that.restaurantDelegation = res.data.data;
|
|
|
+
|
|
|
+ }
|
|
|
+ }).catch(function (error) {
|
|
|
+ that.loading = false
|
|
|
+ that.$message.error("网络错误,请稍后重试");
|
|
|
+ });
|
|
|
+ },
|
|
|
+ del(index, row) {
|
|
|
+ this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ var url = "/api/Resource/DelInvitationOfficialActivity"
|
|
|
+ var that = this
|
|
|
+ this.$axios({
|
|
|
+ method: 'post',
|
|
|
+ url: url,
|
|
|
+ headers: {
|
|
|
+ Authorization: 'Bearer ' + this.token
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ Id: row.id,
|
|
|
+ DeleteUserId: this.userId
|
|
|
+ }
|
|
|
+ }).then(function (res) {
|
|
|
+ console.log(res)
|
|
|
+
|
|
|
+ if (res.data.code == 200) {
|
|
|
+
|
|
|
+ that.$message({
|
|
|
+ message: '删除成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ that.QueryInvitationOfficialActivityData();
|
|
|
+ } else {
|
|
|
+ that.$message.error('删除失败!');
|
|
|
+ }
|
|
|
+ that.loading = false
|
|
|
+ }).catch(function (error) {
|
|
|
+ that.loading = false
|
|
|
+ that.$message.error("网络错误,请稍后重试");
|
|
|
+ });
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '操作已取消!'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ upDate(index, row) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/home/OpInvitationOfficialActivityData",
|
|
|
+ query: { id: row.id }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.token = JSON.parse(localStorage.getItem('userinif')).token;
|
|
|
+ this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
|
|
|
+ this.QueryInvitationOfficialActivityData();
|
|
|
+ this.GetUserNameList();
|
|
|
+ this.GetGroupNameList();
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style>
|
|
|
+.communal-list {
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 10px;
|
|
|
+ box-shadow: 0 0 5px #0005;
|
|
|
+ border-radius: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.communal-title {
|
|
|
+ display: flex;
|
|
|
+ font-size: 17px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #555;
|
|
|
+ margin-top: 8px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+
|
|
|
+.communal-box {
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+
|
|
|
+.communal-box>button {
|
|
|
+ margin-left: 10px;
|
|
|
+ padding: 8px 20px;
|
|
|
+}
|
|
|
+
|
|
|
+.title {
|
|
|
+ width: 80px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
+</style>
|