Files
t-admin/unpackage/dist/dev/mp-weixin/pages/uni-stat/page-rule/page-rule.js
T
2025-06-13 21:16:12 +08:00

430 lines
15 KiB
JavaScript

"use strict";
const common_vendor = require("../../../common/vendor.js");
const js_sdk_validator_uniStatPages = require("../../../js_sdk/validator/uni-stat-pages.js");
const db = common_vendor.er.database();
const dbOrderBy = "";
const dbSearchFields = ["title", "path"];
const pageSize = 20;
const pageCurrent = 1;
const orderByMapping = {
"ascending": "asc",
"descending": "desc"
};
const _sfc_main = {
data() {
return {
collectionList: "uni-stat-pages",
appid: "",
query: "",
where: "",
orderby: dbOrderBy,
orderByFieldName: "",
selectedIndexs: [],
errorMessage: "",
options: {
pageSize,
pageCurrent,
filterData: {},
...js_sdk_validator_uniStatPages.enumConverter
},
imageStyles: {
width: 64,
height: 64
},
exportExcel: {
"filename": "uni-stat-pages.xls",
"type": "xls",
"fields": {
"title": "title",
"path": "path"
}
},
exportExcelData: [],
pageInfo: {
_id: "",
page_rules: []
},
editRulePopup: {
loading: false,
tips: `页面规则说明:
1. 用于生成内容统计 url 的规则。通过设置页面有效参数,通过带参数的 url 对内容进行标识。例如有一个详情页面的请求有三个参数 page/detail/detail?id=1&type=1&t=1565943419,其中 t 为时间戳或随机数,则 id 和 type 为有效参数,需要在页面规则 page/detail/detail 中添加 id,type 这两个参数。
2. 每条规则可以添加多个参数,进行匹配时,每条规则单独生效。
3. 每个页面可以添加多个规则(最多 5 个规则),进行匹配时,后添加的规则优先级较高
4. 目前的匹配规则只能处理通过 url 显式传递参数,且参数形式为上述示例中的键值对格式。`,
isAddParam: false,
addParamInfo: {
index1: "",
value: ""
}
}
};
},
onLoad() {
this._filter = {};
},
onReady() {
if (this.$refs.appListRef) {
this.appid = this.$refs.appListRef.getCache();
this.search();
}
},
methods: {
onqueryload(data) {
this.exportExcelData = data;
},
getWhere() {
const query = this.query.trim();
let queryStr = "";
if (query) {
const queryRe = new RegExp(query, "i");
queryStr = dbSearchFields.map((name) => queryRe + ".test(" + name + ")").join(" || ");
}
if (this.appid) {
if (query) {
queryStr = `appid=='${this.appid}' && (${queryStr})`;
} else {
queryStr = `appid=='${this.appid}'`;
}
}
return queryStr;
},
search() {
this.errorMessage = "";
const newWhere = this.getWhere();
this.where = newWhere;
this.$nextTick(() => {
this.loadData();
});
},
loadData(clear = true) {
this.$refs.udb.loadData({
clear
});
},
onPageChanged(e) {
this.selectedIndexs.length = 0;
this.$refs.table.clearSelection();
this.$refs.udb.loadData({
current: e.current
});
},
navigateTo(url, clear) {
common_vendor.index.navigateTo({
url,
events: {
refreshData: () => {
this.loadData(clear);
}
}
});
},
sortChange(e, name) {
this.orderByFieldName = name;
if (e.order) {
this.orderby = name + " " + orderByMapping[e.order];
} else {
this.orderby = "";
}
this.$refs.table.clearSelection();
this.$nextTick(() => {
this.$refs.udb.loadData();
});
},
filterChange(e, name) {
this._filter[name] = {
type: e.filterType,
value: e.filter
};
let newWhere = js_sdk_validator_uniStatPages.filterToWhere(this._filter, db.command);
if (Object.keys(newWhere).length) {
this.where = newWhere;
} else {
this.where = "";
}
this.$nextTick(() => {
this.$refs.udb.loadData();
});
},
// 编辑规则
editRule(item) {
this.$refs.editRulePopup.open();
if (!item.page_rules || !item.page_rules.length) {
item.page_rules = [
[]
];
}
this.pageInfo = {
_id: item._id,
page_rules: JSON.parse(JSON.stringify(item.page_rules))
// 深拷贝,解除引用关系
};
},
// 添加一个规则
addRulesItem() {
this.pageInfo.page_rules.unshift([]);
},
// 删除一个规则
deleteRulesItem(index1) {
this.pageInfo.page_rules.splice(index1, 1);
},
// 添加一个参数
addParamItem(index1) {
this.editRulePopup.isAddParam = true;
this.editRulePopup.addParamInfo.value = "";
this.editRulePopup.addParamInfo.index1 = index1;
},
// 确认添加参数
confirmAddParamItem(index1) {
if (this.editRulePopup.addParamInfo.value) {
this.pageInfo.page_rules[index1].push(this.editRulePopup.addParamInfo.value);
}
this.editRulePopup.isAddParam = false;
},
// 删除某一个参数
deleteParamItem(index1, index2) {
this.pageInfo.page_rules[index1].splice(index2, 1);
},
// 关闭编辑规则弹窗
closeEditRulePopup() {
this.$refs.editRulePopup.close();
},
// 保存规则
saveRule() {
this.editRulePopup.loading = true;
let page_rules = JSON.parse(JSON.stringify(this.pageInfo.page_rules));
page_rules = page_rules.filter((item) => item.length > 0);
this.$refs.udb.update(this.pageInfo._id, {
page_rules
}, {
showToast: false,
needLoading: false,
success: () => {
this.$refs.udb.dataList.forEach((item) => {
if (item._id === this.pageInfo._id) {
item.page_rules = page_rules;
}
});
this.closeEditRulePopup();
},
complete: () => {
this.editRulePopup.loading = false;
}
});
}
}
};
if (!Array) {
const _easycom_uni_stat_breadcrumb2 = common_vendor.resolveComponent("uni-stat-breadcrumb");
const _easycom_uni_data_select2 = common_vendor.resolveComponent("uni-data-select");
const _easycom_uni_th2 = common_vendor.resolveComponent("uni-th");
const _easycom_uni_tr2 = common_vendor.resolveComponent("uni-tr");
const _easycom_uni_td2 = common_vendor.resolveComponent("uni-td");
const _easycom_uni_table2 = common_vendor.resolveComponent("uni-table");
const _easycom_uni_pagination2 = common_vendor.resolveComponent("uni-pagination");
const _easycom_unicloud_db2 = common_vendor.resolveComponent("unicloud-db");
const _easycom_uni_notice_bar2 = common_vendor.resolveComponent("uni-notice-bar");
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_uni_stat_breadcrumb2 + _easycom_uni_data_select2 + _easycom_uni_th2 + _easycom_uni_tr2 + _easycom_uni_td2 + _easycom_uni_table2 + _easycom_uni_pagination2 + _easycom_unicloud_db2 + _easycom_uni_notice_bar2 + _easycom_uni_icons2 + _easycom_uni_popup2)();
}
const _easycom_uni_stat_breadcrumb = () => "../../../components/uni-stat-breadcrumb/uni-stat-breadcrumb.js";
const _easycom_uni_data_select = () => "../../../uni_modules/uni-data-select/components/uni-data-select/uni-data-select.js";
const _easycom_uni_th = () => "../../../uni_modules/uni-table/components/uni-th/uni-th.js";
const _easycom_uni_tr = () => "../../../uni_modules/uni-table/components/uni-tr/uni-tr.js";
const _easycom_uni_td = () => "../../../uni_modules/uni-table/components/uni-td/uni-td.js";
const _easycom_uni_table = () => "../../../uni_modules/uni-table/components/uni-table/uni-table.js";
const _easycom_uni_pagination = () => "../../../uni_modules/uni-pagination/components/uni-pagination/uni-pagination.js";
const _easycom_unicloud_db = () => "../../../node-modules/@dcloudio/uni-components/lib/unicloud-db/unicloud-db.js";
const _easycom_uni_notice_bar = () => "../../../uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.js";
const _easycom_uni_icons = () => "../../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_uni_stat_breadcrumb + _easycom_uni_data_select + _easycom_uni_th + _easycom_uni_tr + _easycom_uni_td + _easycom_uni_table + _easycom_uni_pagination + _easycom_unicloud_db + _easycom_uni_notice_bar + _easycom_uni_icons + _easycom_uni_popup)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.o((...args) => $options.search && $options.search(...args)),
b: $data.query,
c: common_vendor.o(($event) => $data.query = $event.detail.value),
d: common_vendor.o((...args) => $options.search && $options.search(...args)),
e: common_vendor.sr("appListRef", "8c71ac7a-1"),
f: common_vendor.o($options.search),
g: common_vendor.o(($event) => $data.appid = $event),
h: common_vendor.p({
collection: "opendb-app-list",
field: "appid as value, name as text",
orderby: "text asc",
label: "应用选择",
modelValue: $data.appid
}),
i: common_vendor.w(({
data,
pagination,
loading,
error,
options
}, s0, i0) => {
return {
a: "8c71ac7a-5-" + i0 + "," + ("8c71ac7a-4-" + i0),
b: "8c71ac7a-6-" + i0 + "," + ("8c71ac7a-4-" + i0),
c: "8c71ac7a-7-" + i0 + "," + ("8c71ac7a-4-" + i0),
d: "8c71ac7a-8-" + i0 + "," + ("8c71ac7a-4-" + i0),
e: "8c71ac7a-9-" + i0 + "," + ("8c71ac7a-4-" + i0),
f: "8c71ac7a-4-" + i0 + "," + ("8c71ac7a-3-" + i0),
g: common_vendor.f(data, (item, index, i1) => {
return {
a: common_vendor.t((pagination.current - 1) * pagination.size + (index + 1)),
b: "8c71ac7a-11-" + i0 + "-" + i1 + "," + ("8c71ac7a-10-" + i0 + "-" + i1),
c: common_vendor.t(item.title),
d: "8c71ac7a-12-" + i0 + "-" + i1 + "," + ("8c71ac7a-10-" + i0 + "-" + i1),
e: common_vendor.t(item.path),
f: "8c71ac7a-13-" + i0 + "-" + i1 + "," + ("8c71ac7a-10-" + i0 + "-" + i1),
g: common_vendor.t(item.appid),
h: "8c71ac7a-14-" + i0 + "-" + i1 + "," + ("8c71ac7a-10-" + i0 + "-" + i1),
i: common_vendor.o(($event) => $options.editRule(item), index),
j: "8c71ac7a-15-" + i0 + "-" + i1 + "," + ("8c71ac7a-10-" + i0 + "-" + i1),
k: index,
l: "8c71ac7a-10-" + i0 + "-" + i1 + "," + ("8c71ac7a-3-" + i0)
};
}),
h: common_vendor.sr("table", "8c71ac7a-3-" + i0 + ",8c71ac7a-2"),
i: "8c71ac7a-3-" + i0 + ",8c71ac7a-2",
j: common_vendor.p({
loading,
emptyText: $data.errorMessage || error.message || "没有更多数据",
border: true,
stripe: true
}),
k: "8c71ac7a-16-" + i0 + ",8c71ac7a-2",
l: common_vendor.o(($event) => pagination.current = $event),
m: common_vendor.p({
["show-icon"]: true,
["page-size"]: pagination.size,
total: pagination.count,
modelValue: pagination.current
}),
n: i0,
o: s0
};
}, {
name: "d",
path: "i",
vueId: "8c71ac7a-2"
}),
j: common_vendor.p({
align: "center"
}),
k: common_vendor.o(($event) => $options.filterChange($event, "title")),
l: common_vendor.p({
align: "center",
["filter-type"]: "search"
}),
m: common_vendor.o(($event) => $options.filterChange($event, "path")),
n: common_vendor.p({
align: "left",
["filter-type"]: "search"
}),
o: common_vendor.o(($event) => $options.filterChange($event, "appid")),
p: common_vendor.p({
align: "center",
["filter-type"]: "search"
}),
q: common_vendor.p({
align: "center"
}),
r: common_vendor.p({
align: "center"
}),
s: common_vendor.p({
align: "center"
}),
t: common_vendor.p({
align: "left"
}),
v: common_vendor.p({
align: "center"
}),
w: common_vendor.p({
align: "center"
}),
x: common_vendor.o($options.onPageChanged),
y: common_vendor.sr("udb", "8c71ac7a-2"),
z: common_vendor.o($options.onqueryload),
A: common_vendor.p({
collection: $data.collectionList,
field: "title,path,page_rules,appid",
where: $data.where,
["page-data"]: "replace",
orderby: $data.orderby,
getcount: true,
["page-size"]: $data.options.pageSize,
["page-current"]: $data.options.pageCurrent,
options: $data.options,
loadtime: "manual"
}),
B: common_vendor.p({
["font-size"]: 12,
text: $data.editRulePopup.tips
}),
C: common_vendor.f($data.pageInfo.page_rules, (item1, index1, i0) => {
return common_vendor.e({
a: common_vendor.t($data.pageInfo.page_rules.length - index1),
b: common_vendor.f(item1, (item2, index2, i1) => {
return {
a: common_vendor.t(item2),
b: common_vendor.o(($event) => $options.deleteParamItem(index1, index2), index2),
c: "8c71ac7a-19-" + i0 + "-" + i1 + ",8c71ac7a-17",
d: index2
};
}),
c: $data.editRulePopup.addParamInfo.index1 === index1 && $data.editRulePopup.isAddParam
}, $data.editRulePopup.addParamInfo.index1 === index1 && $data.editRulePopup.isAddParam ? {
d: $data.editRulePopup.addParamInfo.index1 === index1 && $data.editRulePopup.isAddParam,
e: common_vendor.o(($event) => $options.confirmAddParamItem(index1), index1),
f: $data.editRulePopup.addParamInfo.value,
g: common_vendor.o(common_vendor.m(($event) => $data.editRulePopup.addParamInfo.value = $event.detail.value, {
trim: true
}), index1)
} : {
h: common_vendor.o(($event) => $options.addParamItem(index1), index1)
}, {
i: index1 === 0 && $data.pageInfo.page_rules.length < 5
}, index1 === 0 && $data.pageInfo.page_rules.length < 5 ? {
j: common_vendor.o($options.addRulesItem, index1),
k: "8c71ac7a-20-" + i0 + ",8c71ac7a-17",
l: common_vendor.p({
type: "plus",
size: "28",
color: "#606266"
})
} : {
m: common_vendor.o(($event) => $options.deleteRulesItem(index1), index1),
n: "8c71ac7a-21-" + i0 + ",8c71ac7a-17",
o: common_vendor.p({
type: "minus",
size: "28",
color: "#606266"
})
}, {
p: index1
});
}),
D: common_vendor.p({
type: "closeempty",
size: "12",
color: "#42b983"
}),
E: $data.editRulePopup.loading,
F: $data.editRulePopup.loading,
G: common_vendor.o((...args) => $options.saveRule && $options.saveRule(...args)),
H: common_vendor.o((...args) => $options.closeEditRulePopup && $options.closeEditRulePopup(...args)),
I: common_vendor.sr("editRulePopup", "8c71ac7a-17"),
J: common_vendor.p({
type: "center"
})
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-8c71ac7a"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/uni-stat/page-rule/page-rule.js.map