|
@@ -0,0 +1,1544 @@
|
|
|
+{{include "com/inc.html"}}
|
|
|
+<!-- Main Header -->
|
|
|
+{{include "com/header.html"}}
|
|
|
+<!-- Left side column. 权限菜单 -->
|
|
|
+{{include "com/menu.html"}}
|
|
|
+{{include "com/modal.html"}}
|
|
|
+<script src="/time/js/angular.min.js"></script>
|
|
|
+<script src="/time/js/wui-date.js"></script>
|
|
|
+<div class="content-wrapper">
|
|
|
+ <section class="content-header">
|
|
|
+ <h1> 新建客户规则
|
|
|
+ <small>
|
|
|
+ <button class="btn btn-warning btn-sm" onclick="importcomrule()"><i class="fa fa-fw fa-upload fa-lg"></i>导入通用标签</button>
|
|
|
+ <button class="btn btn-primary btn-sm" onclick="importRule()"><i class="fa fa-fw fa-cloud-upload fa-lg"></i>导入关键词</button>
|
|
|
+ <form style="display:none" id='uploadform' method='post'>
|
|
|
+ <input type='file' name='xlsx' id='file'/>
|
|
|
+ </form>
|
|
|
+ <button class="btn btn-info btn-sm" onclick="importEs()"><i class="fa fa-fw fa-cloud-upload fa-lg"></i>导入es</button>
|
|
|
+ <a class="btn btn-sm btn-success" id="download" onclick="downloades()"><i class="fa fa-fw fa-cloud-download fa-lg"></i>下载es</a>
|
|
|
+ <a class="btn btn-sm btn-instagram" onclick="produceData()"><i class="fa fa-fw fa-database fa-lg"></i>生成数据</a>
|
|
|
+ <button class="btn btn-warning btn-sm" onclick="previewData()"><i class="fa fa-fw fa-eye fa-lg"></i>预览</button>
|
|
|
+ <button class="btn btn-danger btn-sm" onclick="archive()"><i class="fa fa-fw fa-save fa-lg"></i>存档</button>
|
|
|
+ </small>
|
|
|
+ </h1>
|
|
|
+ <ol class="breadcrumb">
|
|
|
+ <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li>
|
|
|
+ <li><a href="/service/customer/list"> 客户列表</a></li>
|
|
|
+ <li><a href="/service/customer/edit?id={{.T.cid}}"> 编辑客户</a></li>
|
|
|
+ <li><a href="/service/cuser/rule/list?ids={{.T.ids}}"> 客户规则</a></li>
|
|
|
+ <li><a href="#"> 新增客户规则</a></li>
|
|
|
+ </ol>
|
|
|
+ </section>
|
|
|
+ <!-- Main content -->
|
|
|
+ <section class="content">
|
|
|
+ <div class="tab-content">
|
|
|
+ <div class="nav-tabs-custom">
|
|
|
+ <ul class="nav nav-tabs edit-step">
|
|
|
+ <li class="active" data-mode="guide"><a href="#tab_1" data-toggle="tab" aria-expanded="true">通用规则</a></li>
|
|
|
+ <li data-mode="guide" class=""><a href="#tab_2" data-toggle="tab" aria-expanded="false">关键词规则</a></li>
|
|
|
+ <button class="btn btn-primary btn-sm" style="float: right;margin-top: 7px;margin-right: 10px" onclick="saveTag()"><i class="fa fa-fw fa-file-text fa-lg"></i>保存标签</button>
|
|
|
+ </ul>
|
|
|
+ <div class="tab-content">
|
|
|
+ <div class="tab-pane active" id="tab_1">
|
|
|
+ <form class="form-horizontal">
|
|
|
+ <div class="box box-primary">
|
|
|
+ <div class="box-header with-border">
|
|
|
+ <i class="fa fa-tag"></i>
|
|
|
+ <h3 class="box-title">通用规则</h3>
|
|
|
+ </div>
|
|
|
+ <div class="box-body">
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label"><span style="color:red;">* </span>标签名称</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="tagname" placeholder="标签名称"
|
|
|
+ value="" required>
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label"><span style="color:red;">* </span>部门名称</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="departmentName" placeholder="部门名称"
|
|
|
+ value="" required>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <hr>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">选择省</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" multiple data-live-search="true"
|
|
|
+ id="province"></select>
|
|
|
+ <script>
|
|
|
+ $('#province').on('hide.bs.select', function () {
|
|
|
+ var arr = $('#province').val();
|
|
|
+ var arrStr = "";
|
|
|
+ for (var i in arr) {
|
|
|
+ if (arrStr === "") {
|
|
|
+ arrStr = arr[i]
|
|
|
+ } else {
|
|
|
+ arrStr = arrStr + "," + arr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_area"] = arrStr
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">选择市</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" multiple data-live-search="true"
|
|
|
+ id="city"></select>
|
|
|
+ <script>
|
|
|
+ $('#city').on('hide.bs.select', function () {
|
|
|
+ var arr = $('#city').val();
|
|
|
+ var arrStr = "";
|
|
|
+ for (var i in arr) {
|
|
|
+ if (arrStr === "") {
|
|
|
+ arrStr = arr[i]
|
|
|
+ } else {
|
|
|
+ arrStr = arrStr + "," + arr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_city"] = arrStr
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">选择区/县</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" multiple data-live-search="true"
|
|
|
+ id="district"></select>
|
|
|
+ <script>
|
|
|
+ $('#district').on('hide.bs.select', function () {
|
|
|
+ var arrStr = "";
|
|
|
+ $('#district option:selected').each(function () {
|
|
|
+ if (arrStr === "") {
|
|
|
+ arrStr = $(this).val()
|
|
|
+ } else {
|
|
|
+ arrStr = arrStr + "," + $(this).val()
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dataMap["s_district"] = arrStr
|
|
|
+ })
|
|
|
+
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">公告类别</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" id="typeSelect">
|
|
|
+ <option selected:disabled style="diaplay:none" value=0>请选择</option>
|
|
|
+ <option value=1>一级公告类别</option>
|
|
|
+ <option value=2>二级公告类别</option>
|
|
|
+ </select>
|
|
|
+ <script>
|
|
|
+ $('#typeSelect').on('changed.bs.select', function () {
|
|
|
+ $("#typeSelectVal").selectpicker("deselectAll");
|
|
|
+ $("#typeSelectVal").empty();
|
|
|
+ if ($(this).val() == 1) {
|
|
|
+ for (var i in topTypeArr) {
|
|
|
+ var opt = document.createElement('option');
|
|
|
+ opt.innerText = topTypeArr[i];
|
|
|
+ opt.value = topTypeArr[i];
|
|
|
+ $('#typeSelectVal')[0].appendChild(opt)
|
|
|
+ }
|
|
|
+ }else if ($(this).val() == 2) {
|
|
|
+ for (var i in subTypeArr) {
|
|
|
+ var opt = document.createElement('option');
|
|
|
+ opt.innerText = subTypeArr[i];
|
|
|
+ opt.value = subTypeArr[i];
|
|
|
+ $('#typeSelectVal')[0].appendChild(opt)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $("#typeSelectVal").selectpicker("refresh");
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">公告类别选择</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" multiple id="typeSelectVal"></select>
|
|
|
+ <script>
|
|
|
+ $('#typeSelectVal').on('show.bs.select', function () {
|
|
|
+ if ($('#typeSelect').val() == 0) {
|
|
|
+ showTip("请选择公告类别", 500)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ $('#typeSelectVal').on('hide.bs.select', function () {
|
|
|
+ var arr = $(this).val();
|
|
|
+ var arrStr = "";
|
|
|
+ for (var i in arr) {
|
|
|
+ if (arrStr === "") {
|
|
|
+ arrStr = arr[i]
|
|
|
+ } else {
|
|
|
+ arrStr = arrStr + "," + arr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($('#typeSelect').val() == 1) {
|
|
|
+ dataMap["s_toptype"] = arrStr;
|
|
|
+ dataMap["s_subtype"] = "";
|
|
|
+ }else {
|
|
|
+ dataMap["s_toptype"] = "";
|
|
|
+ dataMap["s_subtype"] = arrStr;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label ">开始时间</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <div class="wui-content">
|
|
|
+ <div class="wui-area" id="starttime">
|
|
|
+ <wui-date
|
|
|
+ format="yyyy-mm-dd hh:mm:ss"
|
|
|
+ placeholder="请选择或输入开始日期"
|
|
|
+ id="date4"
|
|
|
+ btns="{'ok':'确定','now':'此刻'}"
|
|
|
+ ng-model="date4">
|
|
|
+ </wui-date>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label ">结束时间</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <div class="wui-content">
|
|
|
+ <div class="wui-area" id="endtime">
|
|
|
+ <wui-date
|
|
|
+ format="yyyy-mm-dd hh:mm:ss"
|
|
|
+ placeholder="请选择或输入结束日期"
|
|
|
+ id="date4"
|
|
|
+ btns="{'ok':'确定','now':'此刻'}"
|
|
|
+ ng-model="date5">
|
|
|
+ </wui-date>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">选择字段</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control selectpicker" multiple id="existFieldSelect"
|
|
|
+ data-actions-box="true"></select>
|
|
|
+ <script>
|
|
|
+ $('#existFieldSelect').on('hide.bs.select', function () {
|
|
|
+ var arr = $('#existFieldSelect').val();
|
|
|
+ var arrStr = "";
|
|
|
+ for (var i in arr) {
|
|
|
+ if (arrStr === "") {
|
|
|
+ arrStr = arr[i]
|
|
|
+ } else {
|
|
|
+ arrStr = arrStr + "," + arr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_existfields"] = arrStr
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <hr>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">预算限制</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" type="text" id="s_budget_min" placeholder="单位:元/大于">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2" style="text-align: center">___ ___</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" type="text" id="s_budget_max" placeholder="单位:元/小于">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">中标金额限制</label>
|
|
|
+ <div class="col-sm-3" id="bidamountDiv">
|
|
|
+ <input class="form-control" type="text" id="s_bidamount_min" placeholder="单位:元/大于">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2" style="text-align: center">___ ___</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" type="text" id="s_bidamount_max" placeholder="单位:元/小于">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">全局附加词</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="g_addkey" placeholder="***"
|
|
|
+ value="">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">匹配方式</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
|
|
|
+ type="button" id="s_addkeymatch" onclick="selectKeyMatch(0)">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="spiderChannel" class="col-sm-2 control-label">全局排除词</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="g_notkey" placeholder="***"
|
|
|
+ value="">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">匹配方式</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
|
|
|
+ type="button" id="s_notkeymatch" onclick="selectKeyMatch(1)">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">全局清理词</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="s_globalclearkey" placeholder="***"
|
|
|
+ value="">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">匹配方式</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
|
|
|
+ type="button" id="s_globalclearkeymatch" onclick="selectKeyMatch(13)">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">采购单位行业</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
|
|
|
+ type="button" id="s_buyerclass" onclick="selectBuyer(2)">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label">公告行业</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input class="form-control" style="text-align: left;overflow: hidden;white-space: nowrap;text-overflow: ellipsis"
|
|
|
+ type="button" id="s_scopeclass" onclick="selectScope(3)">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <hr>
|
|
|
+ <div class="form-group">
|
|
|
+ <label class="col-sm-2 control-label">预览数据量</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <input type="text" class="form-control" id="maxnum" placeholder="默认100条" value="">
|
|
|
+ </div>
|
|
|
+ <label class="col-sm-2 control-label ">高级字段包</label>
|
|
|
+ <div class="col-sm-3">
|
|
|
+ <select class="form-control" id="extfiledselect" style="border-radius:3px">
|
|
|
+ <option value="2">是</option>
|
|
|
+ <option value="1">否</option>
|
|
|
+ </select>
|
|
|
+ <script>
|
|
|
+ $('#extfiledselect').on("change", function () {
|
|
|
+ dataMap["i_extfieldstype"] = $('#extfiledselect option:selected').val();
|
|
|
+ })
|
|
|
+ </script>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <hr>
|
|
|
+ <div id="es_div" class="form-group" style="display: none">
|
|
|
+ <label class="col-sm-2 control-label">ES语句</label>
|
|
|
+ <div class="col-sm-8">
|
|
|
+ <textarea class="form-control" id="estxt" readonly></textarea>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ <div class="tab-pane" id="tab_2">
|
|
|
+ <div class="box box-primary">
|
|
|
+ <div class="box-header with-border">
|
|
|
+ <i class="fa fa-bookmark"></i>
|
|
|
+ <h3 class="box-title">关键词规则</h3>
|
|
|
+ <div style="float: right">
|
|
|
+ <a class="btn btn-default btn-sm" onclick="selectKeyMatch(4)">关键词匹配方式</a>
|
|
|
+ <a class="btn btn-default btn-sm" onclick="selectKeyMatch(6)">附加词匹配方式</a>
|
|
|
+ <a class="btn btn-default btn-sm" onclick="selectKeyMatch(8)">排除词匹配方式</a>
|
|
|
+ <a class="btn btn-default btn-sm" onclick="selectBuyer(9)">采购单位行业</a>
|
|
|
+ <a class="btn btn-default btn-sm" onclick="selectScope(10)">公告行业</a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <table id="keywords" class="table table-bordered">
|
|
|
+ <thead>
|
|
|
+ <div style="margin: 10px 10px 0px;">
|
|
|
+ <a class="btn btn-twitter" onclick="add_Rule()">新增</a>
|
|
|
+ <a class="btn btn-twitter" onclick="modify_Rule()">修改</a>
|
|
|
+ <a class="btn btn-twitter" onclick="del_Rule()">删除</a>
|
|
|
+ </div>
|
|
|
+ <tr>
|
|
|
+ <th>编号</th>
|
|
|
+ <th><input type="checkbox" onclick="allSelect(this)" id="allCheckbox"></th>
|
|
|
+ <th>关键词</th>
|
|
|
+ <th>匹配方式</th>
|
|
|
+ <th>附加词</th>
|
|
|
+ <th>匹配方式</th>
|
|
|
+ <th>排除词</th>
|
|
|
+ <th>匹配方式</th>
|
|
|
+ <th>采购单位行业</th>
|
|
|
+ <th>公告行业</th>
|
|
|
+ </tr>
|
|
|
+ </thead>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </section>
|
|
|
+</div>
|
|
|
+
|
|
|
+{{include "com/footer.html"}}
|
|
|
+<script>
|
|
|
+ menuActive("/customer/list");
|
|
|
+ var state = 1;
|
|
|
+ var clearkeyMatchArr = ["detail","title"];
|
|
|
+ var app = angular.module('app', ["wui.date"]);
|
|
|
+ var province = {{.T.province}};
|
|
|
+ var cityMap = {{.T.city}};
|
|
|
+ var districtMap = {{.T.district}};
|
|
|
+ var topTypeArr = {{.T.topTypeArr}};
|
|
|
+ var subTypeArr = {{.T.subTypeArr}};
|
|
|
+ var matchTypeMap = {{.T.matchTypeMap}};
|
|
|
+ var matchTypeMap2 = {{.T.matchTypeMap2}};
|
|
|
+ var existField = {{.T.existField}};
|
|
|
+ var buyerClass = {{.T.buyerClass}};
|
|
|
+ var scopeClass = {{.T.scopeClass}};
|
|
|
+
|
|
|
+ var ids = {{.T.ids}}
|
|
|
+
|
|
|
+ var matchCode = []; //匹配方式code
|
|
|
+ var matchName = []; //匹配名字
|
|
|
+ var buyerArr = []; //采购单位
|
|
|
+ var scopeTopArr = []; //公告行业一级
|
|
|
+ var scopeSubArr = []; //公告行业二级
|
|
|
+
|
|
|
+ var keyTableChecked = false; //关键词表格数据是否有选中
|
|
|
+ var keyTableAllChecked = true; //表单数据是否被全选中
|
|
|
+ var selectIndex = []; //选中的编号
|
|
|
+ var setValue = 0; // 4: 关键词匹配方式,6:附加词匹配方式,8:排除词匹配方式,9:采购单位,10:公告行业, 2:全局采购单位行业, 3:全局公告行业, 13:全局清理词
|
|
|
+ var o_rules = []; //关键词列表
|
|
|
+
|
|
|
+ var s_dataid = ""; //预览链接加密串
|
|
|
+
|
|
|
+ //表单数据
|
|
|
+ var dataMap = {
|
|
|
+ "id": "",
|
|
|
+ "s_tagname": "",
|
|
|
+ "s_area": "",
|
|
|
+ "s_city": "",
|
|
|
+ "s_district": "",
|
|
|
+ "s_toptype": "",
|
|
|
+ "s_subtype": "",
|
|
|
+ "s_esquery": "",
|
|
|
+ "s_globaladdkey": "",
|
|
|
+ "s_globaladdkeymatch": "",
|
|
|
+ "s_globalnotkey": "",
|
|
|
+ "s_globalnotkeymatch": "",
|
|
|
+ "i_maxnum": 100,
|
|
|
+ "i_starttime": 0,
|
|
|
+ "i_endtime": 0,
|
|
|
+ "i_extfieldstype": 2,
|
|
|
+ "i_esquerytype": 1,
|
|
|
+ "i_isuse": 1,
|
|
|
+ };
|
|
|
+
|
|
|
+ $(document).ready(function () {
|
|
|
+ //省
|
|
|
+ for (var i in province) {
|
|
|
+ var provOpt = document.createElement('option');
|
|
|
+ provOpt.innerText = province[i];
|
|
|
+ provOpt.value = province[i];
|
|
|
+ $("#province")[0].appendChild(provOpt);
|
|
|
+ }
|
|
|
+ var optHtml = "";
|
|
|
+ var optGroup = "";
|
|
|
+ for (var i in districtMap) {
|
|
|
+ var opt = document.createElement('option');
|
|
|
+ opt.innerText = i;
|
|
|
+ opt.value = i;
|
|
|
+ $("#city")[0].appendChild(opt);
|
|
|
+ optGroup += '<optgroup label="' + i + '" value="' + i + '">';
|
|
|
+ for (var j in districtMap[i]) {
|
|
|
+ optGroup += '<option value="' + i + "-" + districtMap[i][j] + '">' + districtMap[i][j] + '</option>';
|
|
|
+ }
|
|
|
+ optGroup += `</optgroup>`;
|
|
|
+ }
|
|
|
+ optHtml += optGroup;
|
|
|
+ $("#district").append(optHtml);
|
|
|
+
|
|
|
+ $("#province").selectpicker("refresh");
|
|
|
+ $("#city").selectpicker("refresh");
|
|
|
+ $("#district").selectpicker("refresh");
|
|
|
+
|
|
|
+ for (var i in existField) {
|
|
|
+ var opt = document.createElement('option');
|
|
|
+ opt.innerText = existField[i]["name"];
|
|
|
+ opt.value = existField[i]["code"];
|
|
|
+ $('#existFieldSelect')[0].appendChild(opt)
|
|
|
+ }
|
|
|
+ $("#existFieldSelect").selectpicker("refresh");
|
|
|
+ var btnMatchHtml1 = "";
|
|
|
+ var btnMatchHtml2 = "";
|
|
|
+ for (var i in matchTypeMap) {
|
|
|
+ if (i < 5) {
|
|
|
+ btnMatchHtml1 += `<input type="button" class="btn btn-default col-md-pull-2" style="margin-left: 10px;margin-top: 10px" onclick="clickMatchBtn(this)"
|
|
|
+ code="${matchTypeMap[i]["code"]}" value="${matchTypeMap[i]["name"]}">`;
|
|
|
+ }else {
|
|
|
+ btnMatchHtml2 += `<input type="button" class="btn btn-default col-md-pull-2" style="margin-left: 10px;margin-top: 10px" onclick="clickMatchBtn2(this)"
|
|
|
+ code="${matchTypeMap[i]["code"]}" value="${matchTypeMap[i]["name"]}">`;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $("#btnGroupMatch").append(btnMatchHtml1);
|
|
|
+ $("#btnGroupMatch2").append(btnMatchHtml2);
|
|
|
+ var btnBuyerHtml = "";
|
|
|
+ for (var i in buyerClass) {
|
|
|
+ btnBuyerHtml += `<input type="button" class="btn btn-default col-md-2" style="margin-left: 10px;margin-top: 10px" onclick="clickBuyerBtn(this)"
|
|
|
+ value="${buyerClass[i]}">`;
|
|
|
+ }
|
|
|
+ $("#btnGroupBuyer").append(btnBuyerHtml);
|
|
|
+
|
|
|
+ var btnTopHtml = "";
|
|
|
+ var btnSubHtml = "";
|
|
|
+ for (var i in scopeClass) {
|
|
|
+ var topId = "top_" + i;
|
|
|
+ btnTopHtml += `<input type="button" id="${topId}" class="btn btn-default btn_top" onclick="btnTopScopeClick(this)" value="${scopeClass[i]["name"]}">`;
|
|
|
+ btnSubHtml += `<div class="btn-group-sub">`;
|
|
|
+ for (var j in scopeClass[i]["child"]) {
|
|
|
+ var sub = scopeClass[i]["child"][j].split("_");
|
|
|
+ btnSubHtml += `<input type="button" class="btn btn-default btn-sub" onclick="btnSubScopeClick(this)" code="${scopeClass[i]["child"][j]}"
|
|
|
+ index="${i}" value="${sub[1]}">`
|
|
|
+ }
|
|
|
+ btnSubHtml += '</div>'
|
|
|
+ }
|
|
|
+ $("#btnGroupTop").append(btnTopHtml);
|
|
|
+ $("#btnGroupSub").append(btnSubHtml);
|
|
|
+
|
|
|
+ $('#keywords').DataTable({
|
|
|
+ "paging": false,
|
|
|
+ "lengthChange": false,
|
|
|
+ "searching": false,
|
|
|
+ "ordering": false,
|
|
|
+ "info": true,
|
|
|
+ "autoWidth": false,
|
|
|
+ "language": {
|
|
|
+ "url": "/dist/js/dataTables.chinese.lang"
|
|
|
+ },
|
|
|
+ "fnDrawCallback": function () {
|
|
|
+ this.api().column(0).nodes().each(function (cell, i) {
|
|
|
+ cell.innerHTML = i + 1;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ "columns": [
|
|
|
+ {"data": null, width: "2%"},
|
|
|
+ {"data": "", width: "1%", render: function() {
|
|
|
+ return `<input type="checkbox" name="ckb-keyid" onclick="singleSelect(this)" style="text-align: center">`
|
|
|
+ }},
|
|
|
+ {"data": "s_matchkey", width: "10%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ var str = row.s_keymatch;
|
|
|
+ if (str && str != "") {
|
|
|
+ var s = "";
|
|
|
+ for (var i in matchTypeMap) {
|
|
|
+ if (str.indexOf(matchTypeMap[i]["code"]) != -1) {
|
|
|
+ if (s == "") {
|
|
|
+ s = matchTypeMap[i]["name"]
|
|
|
+ } else {
|
|
|
+ s = s + "," + matchTypeMap[i]["name"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return s
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": "s_addkey", width: "10%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ var str = row.s_addkeymatch;
|
|
|
+ if (str && str != "") {
|
|
|
+ var s = "";
|
|
|
+ for (var i in matchTypeMap) {
|
|
|
+ if (str.indexOf(matchTypeMap[i]["code"]) != -1) {
|
|
|
+ if (s == "") {
|
|
|
+ s = matchTypeMap[i]["name"]
|
|
|
+ } else {
|
|
|
+ s = s + "," + matchTypeMap[i]["name"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return s
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": "s_notkey", width: "10%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ var str = row.s_notkeymatch;
|
|
|
+ if (str && str != "") {
|
|
|
+ var s = "";
|
|
|
+ for (var i in matchTypeMap) {
|
|
|
+ if (str.indexOf(matchTypeMap[i]["code"]) != -1) {
|
|
|
+ if (s == "") {
|
|
|
+ s = matchTypeMap[i]["name"]
|
|
|
+ } else {
|
|
|
+ s = s + "," + matchTypeMap[i]["name"]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return s
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": "s_buyerclass", width: "7%", render: function (val) {
|
|
|
+ if (val == undefined) {
|
|
|
+ val = ""
|
|
|
+ }
|
|
|
+ return val
|
|
|
+ }},
|
|
|
+ {"data": "s_topscopeclass", width: "5%", render: function (val) {
|
|
|
+ if (val == undefined) {
|
|
|
+ val = ""
|
|
|
+ }
|
|
|
+ return val
|
|
|
+ }},
|
|
|
+ ],
|
|
|
+ "columnDefs": [{
|
|
|
+ "targets": [2],
|
|
|
+ "render": function (data, type, full, meta) {
|
|
|
+ if (data && data.length > 24) {
|
|
|
+ return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
|
|
|
+ }else if (data == undefined) {
|
|
|
+ return ""
|
|
|
+ }else {
|
|
|
+ return data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ "targets": [4],
|
|
|
+ "render": function (data, type, full, meta) {
|
|
|
+ if (data && data.length > 24) {
|
|
|
+ return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
|
|
|
+ }else if (data == undefined) {
|
|
|
+ return ""
|
|
|
+ }else {
|
|
|
+ return data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, {
|
|
|
+ "targets": [6],
|
|
|
+ "render": function (data, type, full, meta) {
|
|
|
+ if (data && data.length > 24) {
|
|
|
+ return "<a title='" + data + "' href='#' style='text-decoration: none;'>" + data.trim().substr(0, 24) + "..." + "</a>";
|
|
|
+ }else if (data == undefined) {
|
|
|
+ return ""
|
|
|
+ }else {
|
|
|
+ return data
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ $('#province').selectpicker({
|
|
|
+ liveSearch: true,
|
|
|
+ });
|
|
|
+ $('#city').selectpicker({
|
|
|
+ liveSearch: true,
|
|
|
+ });
|
|
|
+ $('#district').selectpicker({
|
|
|
+ liveSearch: true,
|
|
|
+ });
|
|
|
+ //全局modal取消按钮
|
|
|
+ function cancelModel() {
|
|
|
+ $('#modal-imp-es').modal("hide");
|
|
|
+ $('#modal-select-match').modal("hide");
|
|
|
+ $('#modal-select-buyer').modal("hide");
|
|
|
+ $('#modal-select-scope').modal("hide");
|
|
|
+ $('#btnGroupMatch').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupMatch2').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupBuyer').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupTop').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupSub').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //导入es语句modal
|
|
|
+ function importEs() {
|
|
|
+ $("#modal-imp-es").modal("show");
|
|
|
+ }
|
|
|
+ //保存es语句
|
|
|
+ function saveEs() {
|
|
|
+ var esStr = $("#es_json").val();
|
|
|
+ try {
|
|
|
+ if (typeof JSON.parse(esStr) == "object") {
|
|
|
+ $('#modal-imp-es').modal("hide");
|
|
|
+ $('#es_div').show();
|
|
|
+ dataMap["s_esquery"] = esStr;
|
|
|
+ $('#estxt').val(esStr);
|
|
|
+ dataMap["i_esquerytype"] = 2;
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ showMsg("json格式有误")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //关键词/附加词/排除词匹配方式modal
|
|
|
+ function selectKeyMatch(val) {
|
|
|
+ setValue = val;
|
|
|
+ if (setValue == 0 || setValue == 1 || setValue == 13) {
|
|
|
+ matchCode.length = 0;
|
|
|
+ matchName.length = 0;
|
|
|
+ $('#modal-select-match').modal("show");
|
|
|
+ }else {
|
|
|
+ if (selectIndex.length > 0 && keyTableChecked) {
|
|
|
+ matchCode.length = 0;
|
|
|
+ matchName.length = 0;
|
|
|
+ $('#modal-select-match').modal("show");
|
|
|
+ }else {
|
|
|
+ alert("请选中关键词")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //匹配方式按钮点击事件
|
|
|
+ function clickMatchBtn(obj) {
|
|
|
+ if ($(obj).hasClass("active-btn-match")) {
|
|
|
+ $(obj).removeClass("active-btn-match")
|
|
|
+ matchCode.splice($.inArray($(obj).attr("code"), matchCode), 1);
|
|
|
+ matchName.splice($.inArray($(obj).val(), matchName), 1)
|
|
|
+ } else {
|
|
|
+ $(obj).addClass("active-btn-match");
|
|
|
+ matchCode.push($(obj).attr("code"));
|
|
|
+ matchName.push($(obj).val())
|
|
|
+ }
|
|
|
+
|
|
|
+ $('#btnGroupMatch2 .btn-default').each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ }
|
|
|
+ function clickMatchBtn2(obj) {
|
|
|
+ matchCode.length = 0;
|
|
|
+ matchName.length = 0;
|
|
|
+ if ($(obj).hasClass("active-btn-match")) {
|
|
|
+ $(obj).removeClass("active-btn-match")
|
|
|
+ matchCode.splice($.inArray($(obj).attr("code"), matchCode), 1);
|
|
|
+ matchName.splice($.inArray($(obj).val(), matchName), 1)
|
|
|
+ } else {
|
|
|
+ $(obj).addClass("active-btn-match");
|
|
|
+ matchCode.push($(obj).attr("code"));
|
|
|
+ matchName.push($(obj).val())
|
|
|
+ $('#btnGroupMatch2 .btn-default').each(function () {
|
|
|
+ if (this != obj) {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ $('#btnGroupMatch .btn-default').each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //匹配方式保存
|
|
|
+ function saveMatch() {
|
|
|
+ $('#btnGroupMatch').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupMatch2').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ var matchNameStr = "";
|
|
|
+ var codeStr = "";
|
|
|
+ for (var i in matchName) {
|
|
|
+ if (matchNameStr == "") {
|
|
|
+ matchNameStr = matchName[i];
|
|
|
+ }else {
|
|
|
+ matchNameStr += "," + matchName[i]
|
|
|
+ }
|
|
|
+ if (codeStr == "") {
|
|
|
+ codeStr = matchCode[i]
|
|
|
+ }else {
|
|
|
+ codeStr = codeStr + "," + matchCode[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (setValue == 0) {
|
|
|
+ $('#s_addkeymatch').val(matchNameStr);
|
|
|
+ dataMap["s_globaladdkeymatch"] = codeStr
|
|
|
+ }else if (setValue == 1) {
|
|
|
+ $('#s_notkeymatch').val(matchNameStr);
|
|
|
+ dataMap["s_globalnotkeymatch"] = codeStr
|
|
|
+ }else if (setValue == 13){
|
|
|
+ $('#s_globalclearkeymatch').val(matchNameStr);
|
|
|
+ dataMap["s_globalclearkeymatch"] = codeStr
|
|
|
+ }else {
|
|
|
+ for (var i in selectIndex) {
|
|
|
+ var j = selectIndex[i] - 1;
|
|
|
+ if (setValue == 4) {
|
|
|
+ if ($("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child(3)").text() != "") {
|
|
|
+ $("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child("+setValue+")").html(matchNameStr);
|
|
|
+ o_rules[j]["s_keymatch"] = codeStr;
|
|
|
+ }
|
|
|
+ }else if (setValue == 6) {
|
|
|
+ if ($("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child(5)").text() != "") {
|
|
|
+ $("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child("+setValue+")").html(matchNameStr);
|
|
|
+ o_rules[j]["s_addkeymatch"] = codeStr;
|
|
|
+ }
|
|
|
+ } else if (setValue == 8) {
|
|
|
+ if ($("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child(7)").text() != "") {
|
|
|
+ $("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child("+setValue+")").html(matchNameStr);
|
|
|
+ o_rules[j]["s_notkeymatch"] = codeStr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('#modal-select-match').modal("hide");
|
|
|
+ matchName.length = 0;
|
|
|
+ matchCode.length = 0;
|
|
|
+ }
|
|
|
+ //采购单位modal
|
|
|
+ function selectBuyer(val) {
|
|
|
+ setValue = val;
|
|
|
+ if (val == 2) {
|
|
|
+ $('#modal-select-buyer').modal("show");
|
|
|
+ }else {
|
|
|
+ if (keyTableChecked) {
|
|
|
+ $('#modal-select-buyer').modal("show");
|
|
|
+ }else {
|
|
|
+ alert("请选中关键词")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //采购单位点击
|
|
|
+ function clickBuyerBtn(obj) {
|
|
|
+ if ($(obj).hasClass("active-btn-match")) {
|
|
|
+ $(obj).removeClass("active-btn-match")
|
|
|
+ buyerArr.splice($.inArray($(obj).val(), buyerArr), 1)
|
|
|
+ } else {
|
|
|
+ $(obj).addClass("active-btn-match");
|
|
|
+ buyerArr.push($(obj).val())
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function saveBuyer() {
|
|
|
+ $('#btnGroupBuyer').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ var buyerStr = "";
|
|
|
+ for (var i in buyerArr) {
|
|
|
+ if ("" === buyerStr) {
|
|
|
+ buyerStr = buyerArr[i];
|
|
|
+ }else {
|
|
|
+ buyerStr += "," + buyerArr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (setValue == 2) {
|
|
|
+ $('#s_buyerclass').val(buyerStr);
|
|
|
+ $('#s_buyerclass').attr('title', buyerStr);
|
|
|
+ dataMap["s_globalbuyerclass"] = buyerStr;
|
|
|
+ }else {
|
|
|
+ for (var i in selectIndex) {
|
|
|
+ var j = selectIndex[i] - 1;
|
|
|
+ //采购单位
|
|
|
+ $("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child(9)").html(buyerStr);
|
|
|
+ o_rules[j]["s_buyerclass"] = buyerStr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('#modal-select-buyer').modal("hide");
|
|
|
+ buyerArr.length = 0;
|
|
|
+ }
|
|
|
+ //公告行业modal
|
|
|
+ function selectScope(val) {
|
|
|
+ setValue = val;
|
|
|
+ if (val == 3) {
|
|
|
+ $('#modal-select-scope').modal("show");
|
|
|
+ }else {
|
|
|
+ if (keyTableChecked) {
|
|
|
+ $('#modal-select-scope').modal("show");
|
|
|
+ }else {
|
|
|
+ alert("请选中关键词")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //公告行业一级点击
|
|
|
+ function btnTopScopeClick(obj) {
|
|
|
+ if ($(obj).hasClass("active-btn-match")) {
|
|
|
+ $(obj).removeClass("active-btn-match");
|
|
|
+ scopeTopArr.splice($.inArray($(obj).val(), scopeTopArr), 1)
|
|
|
+ } else {
|
|
|
+ $(obj).addClass("active-btn-match");
|
|
|
+ scopeTopArr.push($(obj).val())
|
|
|
+ }
|
|
|
+
|
|
|
+ //选择一级行业,取消掉所选择的所有二级行业
|
|
|
+ if (scopeSubArr.length > 0) {
|
|
|
+ $('#btnGroupSub .btn-default').each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ scopeSubArr.length = 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //公告行业二级点击
|
|
|
+ function btnSubScopeClick(obj) {
|
|
|
+ if ($(obj).hasClass("active-btn-match")) {
|
|
|
+ $(obj).removeClass("active-btn-match")
|
|
|
+ scopeSubArr.splice($.inArray($(obj).val(), scopeSubArr), 1)
|
|
|
+ } else {
|
|
|
+ $(obj).addClass("active-btn-match");
|
|
|
+ var topid = "#top_" + $(obj).attr("index");
|
|
|
+ $(topid).removeClass("active-btn-match");
|
|
|
+ scopeSubArr.push($(obj).attr("code"))
|
|
|
+ }
|
|
|
+
|
|
|
+ //选择二级行业,取消掉所选择的所有一级行业
|
|
|
+ if (scopeTopArr.length > 0) {
|
|
|
+ $('#btnGroupTop .btn-default').each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ scopeTopArr.length = 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ function saveScope() {
|
|
|
+ $('#btnGroupTop').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ $('#btnGroupSub').find("input").each(function () {
|
|
|
+ $(this).removeClass("active-btn-match");
|
|
|
+ });
|
|
|
+ var scopeStr = "";
|
|
|
+ var topStr = "";
|
|
|
+ var subStr = "";
|
|
|
+ for (var i in scopeTopArr) {
|
|
|
+ if ("" == scopeStr) {
|
|
|
+ scopeStr = scopeTopArr[i];
|
|
|
+ }else {
|
|
|
+ scopeStr += "," + scopeTopArr[i]
|
|
|
+ }
|
|
|
+ if (topStr == "") {
|
|
|
+ topStr = scopeTopArr[i]
|
|
|
+ } else {
|
|
|
+ topStr = topStr + "," + scopeTopArr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (var i in scopeSubArr) {
|
|
|
+ if ("" == scopeStr) {
|
|
|
+ scopeStr = scopeSubArr[i];
|
|
|
+ }else {
|
|
|
+ scopeStr += "," + scopeSubArr[i]
|
|
|
+ }
|
|
|
+ if (subStr == "") {
|
|
|
+ subStr = scopeSubArr[i]
|
|
|
+ } else {
|
|
|
+ subStr = subStr + "," + scopeSubArr[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (setValue == 3) {
|
|
|
+ $('#s_scopeclass').val(scopeStr);
|
|
|
+ $('#s_scopeclass').attr('title', scopeStr);
|
|
|
+ dataMap["s_globaltopscopeclass"] = topStr;
|
|
|
+ dataMap["s_globalsubscopeclass"] = subStr;
|
|
|
+ }else {
|
|
|
+ for (var i in selectIndex) {
|
|
|
+ var j = selectIndex[i] - 1;
|
|
|
+ $("#keywords tbody tr:nth-child("+selectIndex[i]+") td:nth-child(10)").html(scopeStr);
|
|
|
+ o_rules[j]["s_topscopeclass"] = topStr;
|
|
|
+ o_rules[j]["s_subscopeclass"] = subStr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $('#modal-select-scope').modal("hide");
|
|
|
+ scopeTopArr.length = 0;
|
|
|
+ scopeSubArr.length = 0;
|
|
|
+ }
|
|
|
+ //页面添加附加词、排除词
|
|
|
+ function addkeyWord(rdata) {
|
|
|
+ o_rules = rdata["o_rules"];
|
|
|
+ $('#g_addkey').attr("value", rdata["s_globaladdkey"]);
|
|
|
+ $('#g_notkey').attr("value", rdata["s_globalnotkey"]);
|
|
|
+ $('#s_globalclearkey').attr("value", rdata["s_globalclearkey"]);
|
|
|
+ dataMap["s_globalclearkey"] = rdata["s_globalclearkey"];
|
|
|
+ dataMap["s_globaladdkey"] = rdata["s_globaladdkey"];
|
|
|
+ dataMap["s_globalnotkey"] = rdata["s_globalnotkey"];
|
|
|
+
|
|
|
+ $('#keywords').dataTable().fnClearTable();
|
|
|
+ $('#keywords').dataTable().fnAddData(rdata["o_rules"]);
|
|
|
+
|
|
|
+ }
|
|
|
+ //表格全选
|
|
|
+ function allSelect(obj) {
|
|
|
+ if ($(obj).is(':checked')) {
|
|
|
+ keyTableChecked = true;
|
|
|
+ keyTableAllChecked = true;
|
|
|
+ $('input[name="ckb-keyid"]').each(function () {
|
|
|
+ this.checked = true;
|
|
|
+ selectIndex.push($(this).parents("tr").index() + 1);
|
|
|
+ })
|
|
|
+ }else {
|
|
|
+ selectIndex.length = 0;
|
|
|
+ keyTableChecked = false;
|
|
|
+ keyTableAllChecked = false;
|
|
|
+ $('input[name="ckb-keyid"]').each(function () {
|
|
|
+ this.checked = false;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //表格单个选中
|
|
|
+ function singleSelect(obj) {
|
|
|
+ var tag = true;
|
|
|
+ selectIndex.length = 0;
|
|
|
+ $('input[name="ckb-keyid"]').each(function () {
|
|
|
+ if (this.checked) {
|
|
|
+ keyTableChecked = true;
|
|
|
+ selectIndex.push($(this).parents("tr").index() + 1);
|
|
|
+ }else {
|
|
|
+ tag = false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (tag) {
|
|
|
+ keyTableAllChecked = true;
|
|
|
+ $('#allCheckbox').prop("checked", true);
|
|
|
+ }else {
|
|
|
+ keyTableAllChecked = false;
|
|
|
+ $('#allCheckbox').prop("checked", false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //保存标签
|
|
|
+ function saveTag() {
|
|
|
+ let obj = checkArea(dataMap.s_area, dataMap.s_city, dataMap.s_district);
|
|
|
+ if (!obj.flag) {
|
|
|
+ let msg = "选择的" + obj.v1 + "和" + obj.v2 + "生成es语句时会产生错误,请重新选择其中一个";
|
|
|
+ showMsg(msg);
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //通用规则采购单位行业和关键词中的采购单位行业只能存在一个
|
|
|
+ if (o_rules.length > 0) {
|
|
|
+ let tag = false;
|
|
|
+ for (var i in o_rules) {
|
|
|
+ if (o_rules[i].s_buyerclass) {
|
|
|
+ tag = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (tag && dataMap.s_globalbuyerclass) {
|
|
|
+ showMsg("保存失败,采购单位行业在通用规则和关键词规则中不能同时存在!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //关键词、附加词、排除词存在,则必须有相应的匹配方式
|
|
|
+ if (dataMap.s_globaladdkey && !dataMap.s_globaladdkeymatch) {
|
|
|
+ showMsg("保存失败,全局附加词必须有对应的匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (dataMap.s_globalnotkey && !dataMap.s_globalnotkeymatch) {
|
|
|
+ showMsg("保存失败,全局附加词必须有对应的匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (dataMap.s_globalclearkey && !dataMap.s_globalclearkeymatch) {
|
|
|
+ showMsg("保存失败,全局清理词说必须有对应的匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (o_rules.length > 0) {
|
|
|
+ for (const i in o_rules) {
|
|
|
+ if (o_rules[i].s_matchkey && !o_rules[i].s_keymatch) {
|
|
|
+ showMsg("保存失败,关键词规则中有关键词未对应匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (o_rules[i].s_addkey && !o_rules[i].s_addkeymatch) {
|
|
|
+ showMsg("保存失败,关键词规则中有附加词未对应匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (o_rules[i].s_notkey && !o_rules[i].s_notkeymatch) {
|
|
|
+ showMsg("保存失败,关键词规则中有排除词未对应匹配方式!")
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_tagname"] = $('#tagname').val();
|
|
|
+ dataMap["s_globaladdkey"] = $('#g_addkey').val();
|
|
|
+ dataMap["s_globalnotkey"] = $('#g_notkey').val();
|
|
|
+ dataMap["s_globalclearkey"] = $('#s_globalclearkey').val();
|
|
|
+ if (dataMap["s_tagname"] == "") {
|
|
|
+ alert("请填写必须字段!")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if ($('#starttime').find("input").val() != "") {
|
|
|
+ var start = $('#starttime').find("input").val();
|
|
|
+ start = new Date(start).getTime() / 1000;
|
|
|
+ dataMap["i_starttime"] = start;
|
|
|
+ }
|
|
|
+ if ($('#endtime').find("input").val() != "") {
|
|
|
+ var end = $('#endtime').find("input").val();
|
|
|
+ end = new Date(end).getTime() / 1000;
|
|
|
+ dataMap["i_endtime"] = end;
|
|
|
+ }
|
|
|
+ var budget = "";
|
|
|
+ if ($('#s_budget_min').val() != "") {
|
|
|
+ budget = "大于" + $('#s_budget_min').val()
|
|
|
+ }
|
|
|
+ if ($('#s_budget_max').val() != "") {
|
|
|
+ if (budget == "") {
|
|
|
+ budget = "小于" + $('#s_budget_max').val()
|
|
|
+ }else {
|
|
|
+ budget = budget + ",小于" + $('#s_budget_max').val()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_budgetlimit"] = budget
|
|
|
+ var bidamount = "";
|
|
|
+ if ($('#s_bidamount_min').val() != "") {
|
|
|
+ bidamount = "大于" + $('#s_bidamount_min').val()
|
|
|
+ }
|
|
|
+ if ($('#s_bidamount_max').val() != "") {
|
|
|
+ if (bidamount == "") {
|
|
|
+ bidamount = "小于" + $('#s_bidamount_max').val()
|
|
|
+ }else {
|
|
|
+ bidamount = bidamount + ",小于" + $('#s_bidamount_max').val()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dataMap["s_bidamountlimit"] = bidamount
|
|
|
+ if ($('#maxnum').val() !== "") {
|
|
|
+ dataMap["i_maxnum"] = $('#maxnum').val();
|
|
|
+ }
|
|
|
+ if (dataMap.s_globaladdkeymatch.indexOf("1") > -1 || dataMap.s_globaladdkeymatch.indexOf("2") > -1 || dataMap.s_globaladdkeymatch.indexOf("3") > -1 ||
|
|
|
+ dataMap.s_globaladdkeymatch.indexOf("4") > -1 || dataMap.s_globaladdkeymatch.indexOf("5") > -1) {
|
|
|
+ dataMap["i_globaladdkeytype"] = 1
|
|
|
+ }else if (dataMap.s_globaladdkeymatch.indexOf("6") > -1 || dataMap.s_globaladdkeymatch.indexOf("7") > -1 ||
|
|
|
+ dataMap.s_globaladdkeymatch.indexOf("8") > -1 || dataMap.s_globaladdkeymatch.indexOf("9") > -1) {
|
|
|
+ dataMap["i_globaladdkeytype"] = 2
|
|
|
+ }else {
|
|
|
+ dataMap["i_globaladdkeytype"] = 0
|
|
|
+ }
|
|
|
+ if (dataMap.s_globalnotkeymatch.indexOf("1") > -1 || dataMap.s_globalnotkeymatch.indexOf("2") > -1 || dataMap.s_globalnotkeymatch.indexOf("3") > -1 ||
|
|
|
+ dataMap.s_globalnotkeymatch.indexOf("4") > -1 || dataMap.s_globalnotkeymatch.indexOf("5") > -1) {
|
|
|
+ dataMap["i_globalnotkeytype"] = 1
|
|
|
+ }else if (dataMap.s_globalnotkeymatch.indexOf("6") > -1 || dataMap.s_globalnotkeymatch.indexOf("7") > -1 ||
|
|
|
+ dataMap.s_globalnotkeymatch.indexOf("8") > -1 || dataMap.s_globalnotkeymatch.indexOf("9") > -1) {
|
|
|
+ dataMap["i_globalnotkeytype"] = 2
|
|
|
+ }else {
|
|
|
+ dataMap["i_globalnotkeytype"] = 0
|
|
|
+ }
|
|
|
+ dataMap["o_rules"] = JSON.stringify(o_rules);
|
|
|
+ dataMap["ids"] = ids
|
|
|
+ dataMap["departmentName"] = $("#departmentName").val();
|
|
|
+ console.log(dataMap)
|
|
|
+ $.ajax({
|
|
|
+ url: "/service/cuser/rule/history/Edit",
|
|
|
+ type: 'POST',
|
|
|
+ data: dataMap,
|
|
|
+ success: function (r) {
|
|
|
+ if (r.rep && r.id) {
|
|
|
+ dataMap["id"]= r.id;
|
|
|
+ dataMap["s_dataid"] = r.s_dataid;
|
|
|
+ $('#es_div').show();
|
|
|
+ $('#estxt').val(r.s_esquery);
|
|
|
+ state = 2;
|
|
|
+ showTip("保存成功",1000);
|
|
|
+ } else {
|
|
|
+ showTip("保存失败",1000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ //导入标签
|
|
|
+ function importRule() {
|
|
|
+ $("#file").click();
|
|
|
+ }
|
|
|
+ $(function() {
|
|
|
+ $("#uploadform").find("input").change(function () {
|
|
|
+ var val = $(this).val() ? $(this).val() : "";
|
|
|
+ if (val.indexOf(".xlsx") < 0) {
|
|
|
+ showMsg("文件格式非法", function () {
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ var myform = new FormData();
|
|
|
+ myform.append('xlsx', $("#file")[0].files[0]);
|
|
|
+ $.ajax({
|
|
|
+ url: "/service/rule/import",
|
|
|
+ type: 'POST',
|
|
|
+ data: myform,
|
|
|
+ async: false,
|
|
|
+ contentType: false,//不要设置Content-Type请求头
|
|
|
+ processData: false,// 使数据不做处理
|
|
|
+ success: function (r) {
|
|
|
+ if (r.rep) {
|
|
|
+ // dataMap["id"] = r.id;
|
|
|
+ addkeyWord(r.rdata);
|
|
|
+ s_dataid = r.s_dataid;
|
|
|
+ showTip("导入成功",1000);
|
|
|
+ } else {
|
|
|
+ showTip("导入失败",1000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ //生成数据
|
|
|
+ function produceData() {
|
|
|
+ if (dataMap.id == undefined || dataMap.id == "") {
|
|
|
+ alert("请先保存标签");
|
|
|
+ return
|
|
|
+ }
|
|
|
+ com.maskShow("正在生成数据...");
|
|
|
+ $.ajax({
|
|
|
+ url:"/service/cuser/produce",
|
|
|
+ type:"post",
|
|
|
+ data: {"id": dataMap.id},
|
|
|
+ success:function(r){
|
|
|
+ com.maskHide();
|
|
|
+ if(r.rep){
|
|
|
+ dataMap.i_estotal = r.count
|
|
|
+ showTip("数据生成成功", 1000);
|
|
|
+ }else{
|
|
|
+ showTip("数据生成失败",1000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //预览数据
|
|
|
+ function previewData() {
|
|
|
+ if (state == 2) {
|
|
|
+ myDataTable = $('#previewData').DataTable({
|
|
|
+ "destroy": true,
|
|
|
+ "paging": true,
|
|
|
+ "lengthChange": false,
|
|
|
+ "searching": false,
|
|
|
+ "ordering": false,
|
|
|
+ "info": true,
|
|
|
+ "autoWidth": true,
|
|
|
+ "serverSide": true,
|
|
|
+ "ajax": {
|
|
|
+ url: "/service/rule/preview",
|
|
|
+ type: "post",
|
|
|
+ data: {"s_dataid": dataMap.s_dataid},
|
|
|
+ },
|
|
|
+ "language": {
|
|
|
+ "url": "/dist/js/dataTables.chinese.lang"
|
|
|
+ },
|
|
|
+ "fnDrawCallback": function () {
|
|
|
+ $("ul.pagination").prepend(" 转到第 <input type='text' id='changePage' style='width:20px;'> 页 <a type='text' href='javascript:void(0);' id='dataTable-btn' style='text-align:center'>GO</a>");
|
|
|
+ $('#dataTable-btn').click(function (e) {
|
|
|
+ var redirectpage = 0;
|
|
|
+ if ($("#changePage").val() && $("#changePage").val() > 0) {
|
|
|
+ var redirectpage = $("#changePage").val() - 1;
|
|
|
+ }
|
|
|
+ myDataTable.page(redirectpage).draw(false);
|
|
|
+ });
|
|
|
+ this.api().column(0).nodes().each(function (cell, i) {
|
|
|
+ cell.innerHTML = i + 1;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ "columns": [
|
|
|
+ {"data": null, width: "2%"},
|
|
|
+ {"data": function(row) {
|
|
|
+ if (row.s_matchkey) {
|
|
|
+ return row.s_matchkey
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "8%"},
|
|
|
+ {"data": function(row) {
|
|
|
+ if (row.area) {
|
|
|
+ return row.area
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function(row) {
|
|
|
+ if (row.city) {
|
|
|
+ return row.city
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.s_jyhref) {
|
|
|
+ tmp = '<a class="" target="_blank" href='+row.s_jyhref+'>'+row.title+'</a>';
|
|
|
+ return tmp
|
|
|
+ }else {
|
|
|
+ return row.title
|
|
|
+ }
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": function(row) {
|
|
|
+ if (row.subtype) {
|
|
|
+ return row.subtype
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ var str = com.trimStr(row.detail);
|
|
|
+ if (str.length > 14) {
|
|
|
+ return str.substring(0, 14) + "..."
|
|
|
+ }else {
|
|
|
+ return str
|
|
|
+ }
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": function(row) {
|
|
|
+ var dt = new Date();
|
|
|
+ dt.setTime(parseInt(row.publishtime)*1000);
|
|
|
+ return dt.format("yyyy-MM-dd")
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.href) {
|
|
|
+ var shref = row.href;
|
|
|
+ tmp = '<a class="" target="_blank" href='+shref+'>公告地址</a>';
|
|
|
+ return tmp
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.projectscope) {
|
|
|
+ if (row.projectscope.length > 14) {
|
|
|
+ return row.projectscope.substring(0, 14) + "..."
|
|
|
+ } else {
|
|
|
+ return row.projectscope
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+ }, width: "5%"},
|
|
|
+ {"data": "projectname", width: "5%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.projectscope) {
|
|
|
+ return row.projectscope
|
|
|
+ }
|
|
|
+ return ""
|
|
|
+ }, width: "3%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.budget == undefined) {
|
|
|
+ return ""
|
|
|
+ }else {
|
|
|
+ return row.budget
|
|
|
+ }
|
|
|
+ }, width: "3%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.bidamount == undefined) {
|
|
|
+ return ""
|
|
|
+ }else {
|
|
|
+ return row.bidamount
|
|
|
+ }
|
|
|
+ }, width: "3%"},
|
|
|
+ {"data": "bidopentime", width: "3%", render: function (val) {
|
|
|
+ if (val) {
|
|
|
+ var dt = new Date();
|
|
|
+ dt.setTime(parseInt(val)*1000);
|
|
|
+ return dt.format("yyyy-MM-dd")
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }},
|
|
|
+ {"data": "buyer", width: "3%", render: function (val) {
|
|
|
+ if (val == undefined) {
|
|
|
+ val = ""
|
|
|
+ }
|
|
|
+ return val
|
|
|
+ }},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.buyerperson) {
|
|
|
+ return row.buyerperson
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.buyertel) {
|
|
|
+ return row.buyertel
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": "agency", width: "5%", render: function (val) {
|
|
|
+ if (val == undefined) {
|
|
|
+ val = ""
|
|
|
+ }
|
|
|
+ return val
|
|
|
+ }},
|
|
|
+ {"data": "winner", width: "3%", render: function (val) {
|
|
|
+ if (val == undefined) {
|
|
|
+ val = ""
|
|
|
+ }
|
|
|
+ return val
|
|
|
+ }},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.winnerperson) {
|
|
|
+ return row.winnerperson
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.winnertel) {
|
|
|
+ return row.winnertel
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.legal_person) {
|
|
|
+ return row.legal_person
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.company_phone) {
|
|
|
+ return row.company_phone
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ {"data": function (row) {
|
|
|
+ if (row.company_email) {
|
|
|
+ return row.company_email
|
|
|
+ }else {
|
|
|
+ return ""
|
|
|
+ }
|
|
|
+ }, width: "4%"},
|
|
|
+ ]
|
|
|
+ });
|
|
|
+ $('#modal-preview').modal("show");
|
|
|
+ if (dataMap.i_extfieldstype == 1) {
|
|
|
+ var str = "标准字段包 " + dataMap.i_maxnum + "/" + dataMap.i_estotal;
|
|
|
+ $('#dataCount').html(str)
|
|
|
+ } else {
|
|
|
+ var str = "高级字段包 " + dataMap.i_maxnum + "/" + dataMap.i_estotal;
|
|
|
+ $('#dataCount').html(str)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ alert("请先保存标签");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //下载es
|
|
|
+ function downloades(){
|
|
|
+ if(state==1){
|
|
|
+ alert("请先保存标签")
|
|
|
+ }else{
|
|
|
+ $("#download").attr("href","/service/rule/exportes?id="+dataMap["id"])
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //存档
|
|
|
+ function archive(){
|
|
|
+ if(state == 1){
|
|
|
+ alert("请先保存标签");
|
|
|
+ return
|
|
|
+ }else{
|
|
|
+ showConfirm("是否存档?", function() {
|
|
|
+ $.ajax({
|
|
|
+ url:"/service/rule/archive",
|
|
|
+ type:"post",
|
|
|
+ data:{"_id":dataMap["id"]},
|
|
|
+ success:function(r){
|
|
|
+ if(r.rep){
|
|
|
+ showTip("存档成功",1000);
|
|
|
+ //ttable.ajax.reload();
|
|
|
+ }else{
|
|
|
+ showTip("存档失败",1000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ var key_flag = -1; // 0:新增,1:修改
|
|
|
+ //关键词表格新增
|
|
|
+ function add_Rule() {
|
|
|
+ key_flag = 0;
|
|
|
+ $('#keyword_txt').val("");
|
|
|
+ $('#addword_txt').val("");
|
|
|
+ $('#notword_txt').val("");
|
|
|
+ $('#modal-add-keyword').modal("show");
|
|
|
+ }
|
|
|
+ //关键词修改
|
|
|
+ function modify_Rule(){
|
|
|
+ if (selectIndex.length == 1) {
|
|
|
+ key_flag = 1;
|
|
|
+ var index = selectIndex[0] - 1;
|
|
|
+ $('#modal-add-keyword').modal("show");
|
|
|
+ $('#keyword_txt').val(o_rules[index].s_matchkey);
|
|
|
+ $('#addword_txt').val(o_rules[index].s_addkey);
|
|
|
+ $('#notword_txt').val(o_rules[index].s_notkey);
|
|
|
+ }else {
|
|
|
+ showTip("请选中需要修改的关键词,且只能选中一条", 1000)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ function saveKeyword() {
|
|
|
+ var key = $('#keyword_txt').val();
|
|
|
+ var addkey = $('#addword_txt').val();
|
|
|
+ var notkey = $('#notword_txt').val();
|
|
|
+ if (key != "") {
|
|
|
+ var rule = {};
|
|
|
+ rule["s_matchkey"] = key.replace(",", ",");
|
|
|
+ if (addkey != "") rule["s_addkey"] = addkey.replace(",", ",");
|
|
|
+ if (notkey != "") rule["s_notkey"] = notkey.replace(",", ",");
|
|
|
+ $('#modal-add-keyword').modal('hide');
|
|
|
+ if (key_flag == 1) {
|
|
|
+ var index = selectIndex[0] - 1;
|
|
|
+ o_rules.splice(index, 1, rule)
|
|
|
+ }else {
|
|
|
+ o_rules.push(rule)
|
|
|
+ }
|
|
|
+ $('#keywords').dataTable().fnClearTable();
|
|
|
+ $('#keywords').dataTable().fnAddData(o_rules);
|
|
|
+ }else {
|
|
|
+ showTip("关键词不能为空", 500)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //关键词删除
|
|
|
+ function del_Rule() {
|
|
|
+ if (keyTableChecked && selectIndex.length > 0) {
|
|
|
+ showConfirm("确定删除?", function() {
|
|
|
+ var tmp = []
|
|
|
+ for (var i in selectIndex) {
|
|
|
+ var j = selectIndex[i] - 1;
|
|
|
+ tmp.push(j)
|
|
|
+ }
|
|
|
+ o_rules = deleteArrayVal(o_rules, tmp)
|
|
|
+ $('#keywords').dataTable().fnClearTable();
|
|
|
+ $('#keywords').dataTable().fnAddData(o_rules);
|
|
|
+
|
|
|
+ keyTableChecked = false;
|
|
|
+ if (o_rules.length == 0) {
|
|
|
+ $('#allCheckbox').prop("checked", false);
|
|
|
+ $('#keywords').dataTable().fnClearTable();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else {
|
|
|
+ showTip("请选中需要删除的关键词", 500)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function checkArea(area, city, district) {
|
|
|
+ let flag = true;
|
|
|
+ let v1 = "";
|
|
|
+ let v2 = ""
|
|
|
+ if (area == "" && city == "" && district == "") {
|
|
|
+ flag = true
|
|
|
+ }
|
|
|
+ if (city != "" && area != "") {
|
|
|
+ var areaArr = area.split(",");
|
|
|
+ var cityArr = city.split(",");
|
|
|
+ for (var i in areaArr) {
|
|
|
+ if (cityMap[areaArr[i]] != undefined) {
|
|
|
+ for (var j in cityArr) {
|
|
|
+ if ($.inArray(cityArr[j], cityMap[areaArr[i]]) > -1) {
|
|
|
+ flag = false;
|
|
|
+ v1 = areaArr[i];
|
|
|
+ v2 = cityArr[j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {flag: flag, v1: v1, v2: v2}
|
|
|
+ }
|
|
|
+ if (city != "" && district != "") {
|
|
|
+ var cityArr = city.split(",");
|
|
|
+ var districtArr = district.split(",");
|
|
|
+ for (var i in cityArr) {
|
|
|
+ if (districtMap[cityArr[i]] != undefined) {
|
|
|
+ for (var j in districtArr) {
|
|
|
+ let dis = districtArr[j].split("-")[1];
|
|
|
+ if ($.inArray(dis, districtMap[cityArr[i]]) > -1) {
|
|
|
+ flag = false;
|
|
|
+ v1 = cityArr[i];
|
|
|
+ v2 = districtArr[j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {flag: flag, v1: v1, v2: v2}
|
|
|
+ }
|
|
|
+ return {flag: flag, v1: v1, v2: v2}
|
|
|
+ }
|
|
|
+</script>
|