Ver código fonte

修改一些BUG

master
leiyun 2 dias atrás
pai
commit
d530b09cd5
3 arquivos alterados com 21 adições e 14 exclusões
  1. +1
    -1
      src/controller/admin/patient.js
  2. +10
    -10
      src/model/patient.js
  3. +10
    -3
      view/admin/patient_index.html

+ 1
- 1
src/controller/admin/patient.js Ver arquivo

@@ -54,7 +54,7 @@ module.exports = class extends Base {
item.region_name = [pName, cName, dName].filter(Boolean).join(' ');
});

const counts = await model.getStatusCounts();
const counts = await model.getStatusCounts({ keyword, tag, startDate, endDate, province_code, city_code, district_code });
return this.success({ ...list, counts });
}



+ 10
- 10
src/model/patient.js Ver arquivo

@@ -147,17 +147,17 @@ module.exports = class extends think.Model {
}

/**
* 获取各状态数量(单次查询
* 获取各状态数量(支持筛选条件,排除 status
*/
async getStatusCounts() {
const sql = `SELECT
COUNT(*) AS \`all\`,
SUM(status = -1) AS draft,
SUM(status = 0) AS pending,
SUM(status = 1) AS approved,
SUM(status = 2) AS rejected
FROM patient WHERE is_deleted = 0`;
const rows = await this.query(sql);
async getStatusCounts(filters = {}) {
// 复用 _buildWhere,但排除 status
const { status, ...rest } = filters;
const where = this._buildWhere(rest);
// 删掉 status 条件(_buildWhere 不会加,但保险起见)
delete where.status;
const rows = await this.where(where)
.field('COUNT(*) AS `all`, SUM(status = -1) AS draft, SUM(status = 0) AS pending, SUM(status = 1) AS approved, SUM(status = 2) AS rejected')
.select();
const row = rows[0] || {};
return {
all: parseInt(row.all, 10) || 0,


+ 10
- 3
view/admin/patient_index.html Ver arquivo

@@ -98,10 +98,12 @@
<div class="flex justify-end mt-4">
<el-pagination
v-model:current-page="pagination.page"
:page-size="pagination.pageSize"
v-model:page-size="pagination.pageSize"
:page-sizes="[10, 20, 50, 100]"
:total="pagination.total"
layout="total, prev, pager, next"
layout="total, sizes, prev, pager, next"
@current-change="loadList"
@size-change="onSizeChange"
/>
</div>
</el-card>
@@ -322,6 +324,11 @@ const app = createApp({
loadList();
}

function onSizeChange() {
pagination.page = 1;
loadList();
}

function viewDetail(row) {
if (!perms.canView) {
ElementPlus.ElMessageBox.alert('暂无查看详情权限,请先联系管理员授权', '温馨提示', {
@@ -480,7 +487,7 @@ const app = createApp({
keyword, dateRange, tagFilter, regionFilter, activeTab, loading, tableData, pagination, counts,
uploadHeaders, addVisible, addSaving, addForm, exporting, editingId, perms,
regionTree, tagOptions, Plus, Download,
loadList, resetFilter, onTabChange, viewDetail, showAddDialog, showEditDialog, handleExport,
loadList, resetFilter, onTabChange, onSizeChange, viewDetail, showAddDialog, showEditDialog, handleExport,
onIdCardInput, onDocUpload, onSignUpload, submitAdd
};
}


Carregando…
Cancelar
Salvar