|  | @@ -0,0 +1,126 @@
 | 
	
		
			
				|  |  | +<script setup lang="ts">
 | 
	
		
			
				|  |  | +import SystemDeptSelect from "@/components/system/dept-select/SystemDeptSelect.vue";
 | 
	
		
			
				|  |  | +import { magicApi } from "@/utils/database/magic-api-request";
 | 
	
		
			
				|  |  | +import XcElOption from "@/components/xiao-chan/xc-el-option/XcElOption.vue";
 | 
	
		
			
				|  |  | +import RenderTable from "@/components/nursing-dashboard/RenderTable.vue";
 | 
	
		
			
				|  |  | +import { useCompShallowRef } from "@/utils/useCompRef";
 | 
	
		
			
				|  |  | +import { ElForm } from "element-plus";
 | 
	
		
			
				|  |  | +import dayjs from "dayjs";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const params = reactive({
 | 
	
		
			
				|  |  | +  month: dayjs().format("yyyy-MM"),
 | 
	
		
			
				|  |  | +  deptCode: "",
 | 
	
		
			
				|  |  | +  templateType: 1,
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const store = reactive({
 | 
	
		
			
				|  |  | +  templateTypeList: [],
 | 
	
		
			
				|  |  | +  htmlData: "",
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const rules = {
 | 
	
		
			
				|  |  | +  month: [{ required: true, message: "请选择月份", trigger: "blur" }],
 | 
	
		
			
				|  |  | +  deptCode: [{ required: true, message: "请选择科室", trigger: "blur" }],
 | 
	
		
			
				|  |  | +  templateType: [
 | 
	
		
			
				|  |  | +    { required: true, message: "请选择模板类型", trigger: "blur" },
 | 
	
		
			
				|  |  | +  ],
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const renderTableRef = useCompShallowRef(RenderTable);
 | 
	
		
			
				|  |  | +const formRef = useCompShallowRef(ElForm);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +async function handleQueryBusiness(business) {
 | 
	
		
			
				|  |  | +  return await magicApi({
 | 
	
		
			
				|  |  | +    url: "/public/dashboard/dataSource",
 | 
	
		
			
				|  |  | +    method: "post",
 | 
	
		
			
				|  |  | +    data: {
 | 
	
		
			
				|  |  | +      isSource: false,
 | 
	
		
			
				|  |  | +      business: business,
 | 
	
		
			
				|  |  | +      deptCode: params.deptCode,
 | 
	
		
			
				|  |  | +      date: params.month,
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +    .then(res => {
 | 
	
		
			
				|  |  | +      return res;
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +    .catch(() => {
 | 
	
		
			
				|  |  | +      return {};
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +async function handleQuery() {
 | 
	
		
			
				|  |  | +  await formRef.value.validate();
 | 
	
		
			
				|  |  | +  store.htmlData = await magicApi({
 | 
	
		
			
				|  |  | +    url: "/public/dashboard/getTemplate",
 | 
	
		
			
				|  |  | +    method: "get",
 | 
	
		
			
				|  |  | +    params: {
 | 
	
		
			
				|  |  | +      ward: params.deptCode,
 | 
	
		
			
				|  |  | +      type: params.templateType,
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  await nextTick();
 | 
	
		
			
				|  |  | +  renderTableRef.value.reloadData();
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +onMounted(() => {
 | 
	
		
			
				|  |  | +  magicApi({
 | 
	
		
			
				|  |  | +    url: "/public/dashboard/getTemplateType",
 | 
	
		
			
				|  |  | +    method: "get",
 | 
	
		
			
				|  |  | +  }).then(res => {
 | 
	
		
			
				|  |  | +    store.templateTypeList = res;
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +});
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="layout_container">
 | 
	
		
			
				|  |  | +    <header>
 | 
	
		
			
				|  |  | +      <el-form inline :rules="rules" ref="formRef" :model="params">
 | 
	
		
			
				|  |  | +        <el-form-item label="月份" prop="month">
 | 
	
		
			
				|  |  | +          <el-date-picker
 | 
	
		
			
				|  |  | +            style="width: 120px"
 | 
	
		
			
				|  |  | +            v-model="params.month"
 | 
	
		
			
				|  |  | +            type="month"
 | 
	
		
			
				|  |  | +            format="YYYY-MM"
 | 
	
		
			
				|  |  | +            value-format="YYYY-MM"
 | 
	
		
			
				|  |  | +            placeholder="请选择月份"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="科室" prop="deptCode">
 | 
	
		
			
				|  |  | +          <SystemDeptSelect v-model="params.deptCode" />
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item label="模板类型" prop="templateType">
 | 
	
		
			
				|  |  | +          <el-select v-model="params.templateType" style="width: 120px">
 | 
	
		
			
				|  |  | +            <xc-el-option :data="store.templateTypeList" />
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +        <el-form-item>
 | 
	
		
			
				|  |  | +          <el-button @click="handleQuery">查询</el-button>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +    </header>
 | 
	
		
			
				|  |  | +    <div class="layout_main">
 | 
	
		
			
				|  |  | +      <RenderTable
 | 
	
		
			
				|  |  | +        class="DeptOperateAnalyseByMonthly"
 | 
	
		
			
				|  |  | +        ref="renderTableRef"
 | 
	
		
			
				|  |  | +        :html-data="store.htmlData"
 | 
	
		
			
				|  |  | +        :query="handleQueryBusiness"
 | 
	
		
			
				|  |  | +      />
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style lang="scss">
 | 
	
		
			
				|  |  | +.DeptOperateAnalyseByMonthly {
 | 
	
		
			
				|  |  | +  background: white;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  table {
 | 
	
		
			
				|  |  | +    border: 1px solid black;
 | 
	
		
			
				|  |  | +    color: black;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  td {
 | 
	
		
			
				|  |  | +    border: 1px solid black;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |