| | |
| | | </el-form-item> |
| | | <el-form-item label="状态:" prop="fansStatus"> |
| | | <el-select v-model="fansStatus" @change="selectChange" clearable placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.fansStatus" |
| | | :label="item.label" |
| | | :value="item.fansStatus"> |
| | | <el-option v-for="item in options" :key="item.fansStatus" :label="item.label" :value="item.fansStatus"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="平台:" prop="platform"> |
| | | <el-select v-model="platform" @change="selectPlatformChange" clearable placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in platformOption" |
| | | :key="item.platform" |
| | | :label="item.label" |
| | | <el-option v-for="item in platformOption" :key="item.platform" :label="item.label" |
| | | :value="item.platform"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btn-box"> |
| | | <el-button |
| | | type="primary" |
| | | class="search-btn style-btn" |
| | | size="mini" |
| | | @click="searchList" |
| | | >查询</el-button |
| | | > |
| | | <el-button class="reset-btn reset-btn" size="mini" @click="handleReset" |
| | | >重置</el-button |
| | | > |
| | | <el-button type="primary" class="search-btn style-btn" size="mini" @click="searchList">查询</el-button> |
| | | <el-button class="reset-btn reset-btn" size="mini" @click="handleReset">重置</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="acea-row"> |
| | | <el-button size="small" type="info" @click="refreshList"><i class="el-icon-refresh"></i></el-button> |
| | | <el-button size="small" type="danger" @click="handleDeleteAll" ><i class="el-icon-delete-solid"></i> 删除</el-button> |
| | | <el-button size="small" type="primary" @click.stop="getUpload" ><i class="el-icon-upload"></i> 上传客户资源</el-button> |
| | | <el-button size="small" type="primary" @click="exports" ><i class="el-icon-document-checked"></i> 导出全部</el-button> |
| | | <!-- <el-button size="small" type="danger" @click="setContactStatus(0)" ><i class="el-icon-phone-outline"></i> 设置未联系</el-button>--> |
| | | <!-- <el-button size="small" type="danger" @click="setContactStatus(1)" ><i class="el-icon-phone"></i> 设置已联系</el-button>--> |
| | | <el-button size="small" type="danger" @click="handleDeleteAll"><i class="el-icon-delete-solid"></i> |
| | | 删除</el-button> |
| | | <el-button size="small" type="primary" @click.stop="getUpload"><i class="el-icon-upload"></i> |
| | | 上传客户资源</el-button> |
| | | <el-button size="small" type="primary" @click="exports"><i class="el-icon-document-checked"></i> |
| | | 导出全部</el-button> |
| | | <!-- <el-button size="small" type="danger" @click="setContactStatus(0)" ><i class="el-icon-phone-outline"></i> 设置未联系</el-button>--> |
| | | <!-- <el-button size="small" type="danger" @click="setContactStatus(1)" ><i class="el-icon-phone"></i> 设置已联系</el-button>--> |
| | | </div> |
| | | </div> |
| | | <el-table |
| | | ref="table" |
| | | v-loading="listLoading" |
| | | :data="tableData.data" |
| | | style="width: 100%;" |
| | | size="mini" |
| | | highlight-current-row |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table ref="table" v-loading="listLoading" :data="tableData.data" style="width: 100%;" size="mini" |
| | | highlight-current-row @selection-change="handleSelectionChange"> |
| | | |
| | | <el-table-column type="selection" width="55" /> |
| | | <!-- <el-table-column prop="taskId" label="任务ID" min-width="60" />--> |
| | | <!-- <el-table-column prop="taskId" label="任务ID" min-width="60" />--> |
| | | <el-table-column prop="taskName" label="任务名" show-overflow-tooltip min-width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="jumpGo(scope.row.taskName)">{{scope.row.taskName}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="帐号" prop="uniqueNo" show-overflow-tooltip min-width="150" /> |
| | | <el-table-column label="昵称" prop="nickname" show-overflow-tooltip min-width="120" /> |
| | | <el-table-column prop="platform" label="平台" min-width="80" /> |
| | | <el-table-column prop="title" label="来源" show-overflow-tooltip min-width="100" > |
| | | <el-table-column prop="platform" label="平台" min-width="60" /> |
| | | <el-table-column label="帐号" prop="uniqueNo" show-overflow-tooltip min-width="120" /> |
| | | <el-table-column label="昵称" show-overflow-tooltip min-width="120"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="hitDetail(scope.row)">{{scope.row.nickname}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="title" label="来源" show-overflow-tooltip min-width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="jumpVideo(scope.row.url)">{{scope.row.title}}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="content" label="内容" show-overflow-tooltip min-width="100" /> |
| | | <el-table-column prop="tel" label="手机" min-width="100" /> |
| | | <el-table-column prop="content" label="内容" show-overflow-tooltip min-width="200" /> |
| | | <el-table-column prop="gotWord" label="命中关键词" show-overflow-tooltip min-width="90" /> |
| | | <el-table-column prop="ip" label="IP" show-overflow-tooltip min-width="60" /> |
| | | <el-table-column prop="tel" label="手机" show-overflow-tooltip min-width="50" /> |
| | | <el-table-column prop="vx" label="VX" show-overflow-tooltip min-width="50" /> |
| | | <el-table-column prop="gotWord" label="命中关键词" min-width="100" /> |
| | | <el-table-column prop="userInfo" sortable label="粉 / 关 / 赞 / 视频" min-width="180" /> |
| | | <el-table-column prop="commentDatetime" sortable label="咨询时间" min-width="140" /> |
| | | <el-table-column prop="grabDatetime" sortable label="分析时间" min-width="140" /> |
| | | <el-table-column prop="status" label="状态" min-width="80" > |
| | | |
| | | <el-table-column prop="userInfo" sortable label="粉/关/赞/作品" min-width="150" /> |
| | | <el-table-column prop="commentDatetime" sortable label="咨询时间" min-width="150" /> |
| | | <el-table-column prop="grabDatetime" sortable label="分析时间" min-width="150" /> |
| | | <el-table-column prop="status" label="状态" min-width="80"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="(scope.row.status != null)">已私信</span> |
| | | <span v-if="(scope.row.status != null)">{{ scope.row.status }}</span> |
| | | <span v-if="(scope.row.status == null && scope.row.isFollow ==1)">已关注</span> |
| | | <span v-if="(scope.row.isFollow == null && scope.row.isChat == null)">未联系</span> |
| | | <span v-if="(scope.row.status == null && scope.row.isFollow == null && scope.row.isChat == null)">未联系</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="deviceNo" label="互动设备" min-width="140" /> |
| | | <el-table-column prop="createTime" sortable label="互动时间" min-width="140" /> |
| | | <el-table-column prop="peerAccount" align="center" label="同行帐号" min-width="80"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="(scope.row.peerAccount == null || scope.row.peerAccount == 0)">否</span> |
| | | <span v-if="(scope.row.peerAccount == 1)"><el-button type="success" round>是</el-button></span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="intentionFans" align="center" label="意向粉丝" min-width="80"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="(scope.row.intentionFans == null || scope.row.intentionFans == 0)">否</span> |
| | | <span v-if="(scope.row.intentionFans == 1)"><el-button type="success" round>是</el-button></span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="source" label="数据渠道" min-width="80" /> |
| | | <el-table-column prop="source" label="数据渠道" min-width="80" /> |
| | | <el-table-column label="操作" min-width="120" fixed="right" align="center"> |
| | | <template slot-scope="scope"> |
| | | <div> |
| | | <el-button |
| | | type="success" |
| | | size="mini" |
| | | @click="scanQRCode(scope.row)" |
| | | class="mr10">扫码私信</el-button> |
| | | <el-dialog |
| | | :modal="false" |
| | | :visible.sync="dialogVisible" |
| | | :close-on-click-modal="true" |
| | | width="25%" |
| | | custom-class="prod-upload-dialog" |
| | | title="扫二维码开始私信"> |
| | | <img :src="qrCodeData" alt="QR Code" v-if="qrCodeData"/> |
| | | <el-button type="warning" size="mini" @click="scanQRCode(scope.row)" class="mr10">扫码私信</el-button> |
| | | <el-dialog :modal="false" :visible.sync="dialogVisible" :close-on-click-modal="true" width="25%" |
| | | custom-class="prod-upload-dialog" title="扫二维码开始私信"> |
| | | <img :src="qrCodeData" alt="QR Code" v-if="qrCodeData" /> |
| | | </el-dialog> |
| | | </div> |
| | | <el-button |
| | | type="warning" |
| | | size="mini" |
| | | @click="viewHome(scope.row)" |
| | | class="mt-[10px] mr10 mymr10" |
| | | >访问主页</el-button> |
| | | <el-button |
| | | type="danger" |
| | | size="mini" |
| | | @click="hitDetail(scope.row)" |
| | | class="mt-[10px] mr10 mymr10" |
| | | >查看详情</el-button> |
| | | <el-button type="primary" size="mini" @click="viewHome(scope.row)" |
| | | class="mt-[10px] mr10 mymr10">访问主页</el-button> |
| | | <!-- <el-button type="danger" size="mini" @click="hitDetail(scope.row)" |
| | | class="mt-[10px] mr10 mymr10">查看详情</el-button> --> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | <div class="block"> |
| | | <el-pagination |
| | | :page-sizes="[20, 40, 60, 80]" |
| | | :page-size="tableFrom.size" |
| | | :current-page="tableFrom.current" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="tableData.total" |
| | | @size-change="handleSizeChange" |
| | | @current-change="pageChange" |
| | | /> |
| | | <el-pagination :page-sizes="[20, 40, 60, 80]" :page-size="tableFrom.size" :current-page="tableFrom.current" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="tableData.total" @size-change="handleSizeChange" |
| | | @current-change="pageChange" /> |
| | | </div> |
| | | </el-card> |
| | | <consumer-video-upload |
| | | v-if="uploadVisible" |
| | | ref="consumerVideoUpload" |
| | | :isLoad="true" |
| | | @refreshDataList="getWaitingConsignmentExcel" |
| | | ></consumer-video-upload> |
| | | <consumer-video-upload v-if="uploadVisible" ref="consumerVideoUpload" :isLoad="true" |
| | | @refreshDataList="getWaitingConsignmentExcel"></consumer-video-upload> |
| | | <!-- 命中详情--> |
| | | <hit-detail |
| | | v-if="hitDetailVisible" |
| | | ref="hitDetail" |
| | | :isLoad="true" |
| | | ></hit-detail> |
| | | <hit-detail v-if="hitDetailVisible" ref="hitDetail" :isLoad="true"></hit-detail> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | engineCustomerListApi, |
| | | customerListDeleteApi, |
| | | exportCustomerListApi, |
| | | setContactStatusApi, setIndustryAndFansApi |
| | | } from '@/api/engine/engine'; |
| | | import ConsumerVideoUpload from "./consumer-video-upload"; |
| | | import qrcode from "qrcode"; |
| | | import HitDetail from "@/views/engine/hitDetail.vue"; |
| | | export default { |
| | | name: 'StoreAttr', |
| | | data() { |
| | | return { |
| | | formDynamic: { |
| | | ruleName: '', |
| | | ruleValue: [], |
| | | }, |
| | | tableFrom: { |
| | | current: 1, |
| | | size: 20, |
| | | keywords: '', |
| | | // 是否同行账号和意向粉丝数据 |
| | | clueAndIntention: true |
| | | }, |
| | | tableData: { |
| | | records: [], |
| | | loading: false, |
| | | total: 0, |
| | | }, |
| | | listLoading: true, |
| | | selectionList: [], |
| | | multipleSelectionAll: [], |
| | | idKey: 'id', |
| | | nextPageFlag: false, |
| | | uploadVisible: false, |
| | | keyNum: 0, |
| | | dialogVisible: false, |
| | | qrCodeData:'', |
| | | hitDetailVisible: false, |
| | | options: [{ |
| | | fansStatus: 1, |
| | | label: '已关注' |
| | | }, { |
| | | fansStatus: 2, |
| | | label: '已私信' |
| | | }, |
| | | { |
| | | fansStatus: 3, |
| | | label: '待私信' |
| | | } |
| | | ], |
| | | platformOption: [{ |
| | | platform: 'DY', |
| | | label: '抖音' |
| | | }, { |
| | | platform: 'KS', |
| | | label: '快手' |
| | | }, { |
| | | platform: 'XHS', |
| | | label: '小红书' |
| | | }] |
| | | }; |
| | | }, |
| | | components: {HitDetail, ConsumerVideoUpload}, |
| | | mounted() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | searchList() { |
| | | this.tableFrom.current = 1; |
| | | import { |
| | | engineCustomerListApi, |
| | | customerListDeleteApi, |
| | | exportCustomerListApi, |
| | | setContactStatusApi, |
| | | setIndustryAndFansApi |
| | | } from '@/api/engine/engine'; |
| | | import ConsumerVideoUpload from "./consumer-video-upload"; |
| | | import qrcode from "qrcode"; |
| | | import HitDetail from "@/views/engine/hitDetail.vue"; |
| | | export default { |
| | | name: 'StoreAttr', |
| | | data() { |
| | | return { |
| | | formDynamic: { |
| | | ruleName: '', |
| | | ruleValue: [], |
| | | }, |
| | | tableFrom: { |
| | | current: 1, |
| | | size: 20, |
| | | keywords: '', |
| | | // 是否同行账号和意向粉丝数据 |
| | | clueAndIntention: true |
| | | }, |
| | | tableData: { |
| | | records: [], |
| | | loading: false, |
| | | total: 0, |
| | | }, |
| | | listLoading: true, |
| | | selectionList: [], |
| | | multipleSelectionAll: [], |
| | | idKey: 'id', |
| | | nextPageFlag: false, |
| | | uploadVisible: false, |
| | | keyNum: 0, |
| | | dialogVisible: false, |
| | | qrCodeData: '', |
| | | hitDetailVisible: false, |
| | | options: [{ |
| | | fansStatus: 1, |
| | | label: '已关注' |
| | | }, { |
| | | fansStatus: 2, |
| | | label: '已私信' |
| | | }, |
| | | { |
| | | fansStatus: 3, |
| | | label: '待私信' |
| | | } |
| | | ], |
| | | platformOption: [{ |
| | | platform: 'DY', |
| | | label: '抖音' |
| | | }, { |
| | | platform: 'KS', |
| | | label: '快手' |
| | | }, { |
| | | platform: 'XHS', |
| | | label: '小红书' |
| | | }] |
| | | }; |
| | | }, |
| | | components: { |
| | | HitDetail, |
| | | ConsumerVideoUpload |
| | | }, |
| | | mounted() { |
| | | this.getList(); |
| | | }, |
| | | handleReset() { |
| | | this.$refs.tableFrom.resetFields(); |
| | | this.fansStatus = '' |
| | | this.platform = '' |
| | | this.getList(); |
| | | }, |
| | | refreshList() { |
| | | this.tableFrom.current = 1; |
| | | this.tableFrom.keywords = ''; |
| | | this.getList(); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.selectionList = val; |
| | | setTimeout(() => { |
| | | this.changePageCoreRecordData(); |
| | | }, 50); |
| | | }, |
| | | // 设置选中的方法 |
| | | setSelectRow() { |
| | | if (!this.multipleSelectionAll || this.multipleSelectionAll.length <= 0) { |
| | | return; |
| | | } |
| | | // 标识当前行的唯一键的名称 |
| | | const idKey = this.idKey; |
| | | const selectAllIds = []; |
| | | this.multipleSelectionAll.forEach((row) => { |
| | | selectAllIds.push(row[idKey]); |
| | | }); |
| | | this.$refs.table.clearSelection(); |
| | | for (var i = 0; i < this.tableData.data.length; i++) { |
| | | if (selectAllIds.indexOf(this.tableData.data[i][idKey]) >= 0) { |
| | | // 设置选中,记住table组件需要使用ref="table" |
| | | this.$refs.table.toggleRowSelection(this.tableData.data[i], true); |
| | | methods: { |
| | | searchList() { |
| | | this.tableFrom.current = 1; |
| | | this.getList(); |
| | | }, |
| | | handleReset() { |
| | | this.$refs.tableFrom.resetFields(); |
| | | this.fansStatus = '' |
| | | this.platform = '' |
| | | this.getList(); |
| | | }, |
| | | refreshList() { |
| | | this.tableFrom.current = 1; |
| | | this.tableFrom.keywords = ''; |
| | | this.getList(); |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.selectionList = val; |
| | | setTimeout(() => { |
| | | this.changePageCoreRecordData(); |
| | | }, 50); |
| | | }, |
| | | // 设置选中的方法 |
| | | setSelectRow() { |
| | | if (!this.multipleSelectionAll || this.multipleSelectionAll.length <= 0) { |
| | | return; |
| | | } |
| | | } |
| | | }, |
| | | // 记忆选择核心方法 |
| | | changePageCoreRecordData() { |
| | | // 标识当前行的唯一键的名称 |
| | | const idKey = this.idKey; |
| | | const that = this; |
| | | // 如果总记忆中还没有选择的数据,那么就直接取当前页选中的数据,不需要后面一系列计算 |
| | | if (this.multipleSelectionAll.length <= 0) { |
| | | this.multipleSelectionAll = this.selectionList; |
| | | return; |
| | | } |
| | | // 总选择里面的key集合 |
| | | const selectAllIds = []; |
| | | this.multipleSelectionAll.forEach((row) => { |
| | | selectAllIds.push(row[idKey]); |
| | | }); |
| | | const selectIds = []; |
| | | // 获取当前页选中的id |
| | | this.selectionList.forEach((row) => { |
| | | selectIds.push(row[idKey]); |
| | | // 如果总选择里面不包含当前页选中的数据,那么就加入到总选择集合里 |
| | | if (selectAllIds.indexOf(row[idKey]) < 0) { |
| | | that.multipleSelectionAll.push(row); |
| | | // 标识当前行的唯一键的名称 |
| | | const idKey = this.idKey; |
| | | const selectAllIds = []; |
| | | this.multipleSelectionAll.forEach((row) => { |
| | | selectAllIds.push(row[idKey]); |
| | | }); |
| | | this.$refs.table.clearSelection(); |
| | | for (var i = 0; i < this.tableData.data.length; i++) { |
| | | if (selectAllIds.indexOf(this.tableData.data[i][idKey]) >= 0) { |
| | | // 设置选中,记住table组件需要使用ref="table" |
| | | this.$refs.table.toggleRowSelection(this.tableData.data[i], true); |
| | | } |
| | | } |
| | | }); |
| | | const noSelectIds = []; |
| | | // 得到当前页没有选中的id |
| | | this.tableData.data.forEach((row) => { |
| | | if (selectIds.indexOf(row[idKey]) < 0) { |
| | | noSelectIds.push(row[idKey]); |
| | | }, |
| | | // 记忆选择核心方法 |
| | | changePageCoreRecordData() { |
| | | // 标识当前行的唯一键的名称 |
| | | const idKey = this.idKey; |
| | | const that = this; |
| | | // 如果总记忆中还没有选择的数据,那么就直接取当前页选中的数据,不需要后面一系列计算 |
| | | if (this.multipleSelectionAll.length <= 0) { |
| | | this.multipleSelectionAll = this.selectionList; |
| | | return; |
| | | } |
| | | }); |
| | | noSelectIds.forEach((id) => { |
| | | if (selectAllIds.indexOf(id) >= 0) { |
| | | for (let i = 0; i < that.multipleSelectionAll.length; i++) { |
| | | if (that.multipleSelectionAll[i][idKey] == id) { |
| | | // 如果总选择中有未被选中的,那么就删除这条 |
| | | that.multipleSelectionAll.splice(i, 1); |
| | | break; |
| | | // 总选择里面的key集合 |
| | | const selectAllIds = []; |
| | | this.multipleSelectionAll.forEach((row) => { |
| | | selectAllIds.push(row[idKey]); |
| | | }); |
| | | const selectIds = []; |
| | | // 获取当前页选中的id |
| | | this.selectionList.forEach((row) => { |
| | | selectIds.push(row[idKey]); |
| | | // 如果总选择里面不包含当前页选中的数据,那么就加入到总选择集合里 |
| | | if (selectAllIds.indexOf(row[idKey]) < 0) { |
| | | that.multipleSelectionAll.push(row); |
| | | } |
| | | }); |
| | | const noSelectIds = []; |
| | | // 得到当前页没有选中的id |
| | | this.tableData.data.forEach((row) => { |
| | | if (selectIds.indexOf(row[idKey]) < 0) { |
| | | noSelectIds.push(row[idKey]); |
| | | } |
| | | }); |
| | | noSelectIds.forEach((id) => { |
| | | if (selectAllIds.indexOf(id) >= 0) { |
| | | for (let i = 0; i < that.multipleSelectionAll.length; i++) { |
| | | if (that.multipleSelectionAll[i][idKey] == id) { |
| | | // 如果总选择中有未被选中的,那么就删除这条 |
| | | that.multipleSelectionAll.splice(i, 1); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | handleAdd() { |
| | | const _this = this; |
| | | this.$modalAttr( |
| | | Object.assign({}, this.formDynamic), |
| | | function () { |
| | | _this.getList(); |
| | | }, |
| | | (this.keyNum += 1), |
| | | ); |
| | | }, |
| | | // 列表 |
| | | getList() { |
| | | this.listLoading = true; |
| | | engineCustomerListApi(this.tableFrom) |
| | | .then((res) => { |
| | | const list = res.records; |
| | | this.tableData.data = list; |
| | | this.tableData.total = res.total; |
| | | for (var i = 0; i < list.length; i++) { |
| | | list[i].ruleValue = JSON.parse(list[i].ruleValue); |
| | | } |
| | | this.$nextTick(function () { |
| | | this.setSelectRow(); // 调用跨页选中方法 |
| | | }); |
| | | this.listLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.listLoading = false; |
| | | }); |
| | | }, |
| | | }, |
| | | handleAdd() { |
| | | const _this = this; |
| | | this.$modalAttr( |
| | | Object.assign({}, this.formDynamic), |
| | | function() { |
| | | _this.getList(); |
| | | }, |
| | | (this.keyNum += 1), |
| | | ); |
| | | }, |
| | | // 列表 |
| | | getList() { |
| | | this.listLoading = true; |
| | | engineCustomerListApi(this.tableFrom) |
| | | .then((res) => { |
| | | const list = res.records; |
| | | this.tableData.data = list; |
| | | this.tableData.total = res.total; |
| | | for (var i = 0; i < list.length; i++) { |
| | | list[i].ruleValue = JSON.parse(list[i].ruleValue); |
| | | } |
| | | this.$nextTick(function() { |
| | | this.setSelectRow(); // 调用跨页选中方法 |
| | | }); |
| | | this.listLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.listLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | jumpVideo(url) { |
| | | if (url !== '' && url !== null) { |
| | | console.log("jumpVideo=>" + url) |
| | | window.open(url, '_blank') |
| | | } |
| | | }, |
| | | // 导出 |
| | | exports() { |
| | | const keywords = this.tableFrom.keywords; |
| | | exportCustomerListApi(keywords).then((res) => { |
| | | // window.open(res.fileName); |
| | | alert("res =>" + JSON.stringify(res)); |
| | | }).catch((error) => { |
| | | // console.error(error); |
| | | }); |
| | | }, |
| | | pageChange(page) { |
| | | this.changePageCoreRecordData(); |
| | | this.tableFrom.current = page; |
| | | this.getList(); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.changePageCoreRecordData(); |
| | | this.tableFrom.size = val; |
| | | this.getList(); |
| | | }, |
| | | // 删除 |
| | | handleDelete(id, idx) { |
| | | this.$modalSure() |
| | | .then(() => { |
| | | customerListDeleteApi(id).then(() => { |
| | | this.$message.success('删除成功'); |
| | | if (this.tableData.data.length === 1 && this.tableFrom.page > 1) |
| | | this.tableFrom.page = this.tableFrom.page - 1; |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | handleDeleteAll() { |
| | | if (!this.multipleSelectionAll.length) return this.$message.warning('请选择数据'); |
| | | const data = []; |
| | | this.multipleSelectionAll.map((item) => { |
| | | data.push(item.id); |
| | | }); |
| | | this.ids = data.join(','); |
| | | this.$confirm("是否删除,删除后不可恢复?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | customerListDeleteApi(this.ids).then(() => { |
| | | this.$message.success('删除成功'); |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 扫描访问 |
| | | scanQRCode(val) { |
| | | const params = val.userHomePageUrl; |
| | | qrcode.toDataURL(params) |
| | | .then(url => { |
| | | this.qrCodeData = url; |
| | | this.dialogVisible = true; |
| | | }) |
| | | .catch(err => { |
| | | console.error("scanQRCode: "+err); |
| | | jumpVideo(url) { |
| | | if (url !== '' && url !== null) { |
| | | console.log("jumpVideo=>" + url) |
| | | window.open(url, '_blank') |
| | | } |
| | | }, |
| | | // 导出 |
| | | exports() { |
| | | const keywords = this.tableFrom.keywords; |
| | | exportCustomerListApi(keywords).then((res) => { |
| | | // window.open(res.fileName); |
| | | alert("res =>" + JSON.stringify(res)); |
| | | }).catch((error) => { |
| | | // console.error(error); |
| | | }); |
| | | }, |
| | | viewHome(val) { |
| | | const url = val.userHomePageUrl; |
| | | if (url !== '' && url !== null) { |
| | | console.log("jumpVideo=>" + url) |
| | | window.open(url, '_blank') |
| | | } |
| | | }, |
| | | // 跳转至导入选择 |
| | | getUpload () { |
| | | this.uploadVisible = true |
| | | this.$nextTick(() => { |
| | | this.$refs.consumerVideoUpload.init() |
| | | }) |
| | | }, |
| | | // 刷新数据 |
| | | getWaitingConsignmentExcel () { |
| | | // console.log("----------consumer----------------") |
| | | // 关闭 |
| | | setTimeout(() => { |
| | | this.refreshList() |
| | | }, 1000) |
| | | }, |
| | | // 页面跳转 |
| | | jumpGo(param) { |
| | | // console.log("-------------->"+param) |
| | | this.$router.push({path: '/taskManage/task', query: {keywords: param}}) |
| | | }, |
| | | // 命中详情 |
| | | hitDetail (data) { |
| | | const keyword = data.gotWord; |
| | | if (keyword) { |
| | | this.hitDetailVisible = true |
| | | }, |
| | | pageChange(page) { |
| | | this.changePageCoreRecordData(); |
| | | this.tableFrom.current = page; |
| | | this.getList(); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.changePageCoreRecordData(); |
| | | this.tableFrom.size = val; |
| | | this.getList(); |
| | | }, |
| | | // 删除 |
| | | handleDelete(id, idx) { |
| | | this.$modalSure() |
| | | .then(() => { |
| | | customerListDeleteApi(id).then(() => { |
| | | this.$message.success('删除成功'); |
| | | if (this.tableData.data.length === 1 && this.tableFrom.page > 1) |
| | | this.tableFrom.page = this.tableFrom.page - 1; |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | handleDeleteAll() { |
| | | if (!this.multipleSelectionAll.length) return this.$message.warning('请选择数据'); |
| | | const data = []; |
| | | this.multipleSelectionAll.map((item) => { |
| | | data.push(item.id); |
| | | }); |
| | | this.ids = data.join(','); |
| | | this.$confirm("是否删除,删除后不可恢复?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | customerListDeleteApi(this.ids).then(() => { |
| | | this.$message.success('删除成功'); |
| | | this.getList(); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 扫描访问 |
| | | scanQRCode(val) { |
| | | const params = val.userHomePageUrl; |
| | | qrcode.toDataURL(params) |
| | | .then(url => { |
| | | this.qrCodeData = url; |
| | | this.dialogVisible = true; |
| | | }) |
| | | .catch(err => { |
| | | console.error("scanQRCode: " + err); |
| | | }); |
| | | }, |
| | | viewHome(val) { |
| | | const url = val.userHomePageUrl; |
| | | if (url !== '' && url !== null) { |
| | | console.log("jumpVideo=>" + url) |
| | | window.open(url, '_blank') |
| | | } |
| | | }, |
| | | // 跳转至导入选择 |
| | | getUpload() { |
| | | this.uploadVisible = true |
| | | this.$nextTick(() => { |
| | | this.$refs.hitDetail.init(); |
| | | this.$refs.hitDetail.getHitDetail(data.taskId, data.id); |
| | | this.$refs.consumerVideoUpload.init() |
| | | }) |
| | | } |
| | | }, |
| | | // 刷新数据 |
| | | getWaitingConsignmentExcel() { |
| | | // console.log("----------consumer----------------") |
| | | // 关闭 |
| | | setTimeout(() => { |
| | | this.refreshList() |
| | | }, 1000) |
| | | }, |
| | | // 页面跳转 |
| | | jumpGo(param) { |
| | | // console.log("-------------->"+param) |
| | | this.$router.push({ |
| | | path: '/taskManage/task', |
| | | query: { |
| | | keywords: param |
| | | } |
| | | }) |
| | | }, |
| | | // 命中详情 |
| | | hitDetail(data) { |
| | | const keyword = data.gotWord; |
| | | if (keyword) { |
| | | this.hitDetailVisible = true |
| | | this.$nextTick(() => { |
| | | this.$refs.hitDetail.init(); |
| | | this.$refs.hitDetail.getHitDetail(data.taskId, data.id); |
| | | }) |
| | | } |
| | | }, |
| | | selectChange(value) { |
| | | this.tableFrom.fansStatus = value; |
| | | this.getList(); |
| | | }, |
| | | selectPlatformChange(value) { |
| | | this.tableFrom.platform = value; |
| | | this.getList(); |
| | | }, |
| | | }, |
| | | selectChange(value){ |
| | | this.tableFrom.fansStatus = value; |
| | | this.getList(); |
| | | }, |
| | | selectPlatformChange(value) { |
| | | this.tableFrom.platform = value; |
| | | this.getList(); |
| | | }, |
| | | }, |
| | | }; |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | @import "list-header.scss"; |
| | | .selWidth { |
| | | width: 350px !important; |
| | | } |
| | | .seachTiele { |
| | | line-height: 35px; |
| | | } |
| | | .fr { |
| | | float: right; |
| | | } |
| | | .mymr10{ |
| | | margin-left: 0px; |
| | | margin-top: 10px; |
| | | } |
| | | @import "list-header.scss"; |
| | | |
| | | .selWidth { |
| | | width: 350px !important; |
| | | } |
| | | |
| | | .seachTiele { |
| | | line-height: 35px; |
| | | } |
| | | |
| | | .fr { |
| | | float: right; |
| | | } |
| | | |
| | | .mymr10 { |
| | | margin-left: 0px; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |