diff --git a/src/components/system/message/AddTemplate.jsx b/src/components/system/message/AddTemplate.jsx
index dbd8268ef002d2a29ba59b2c2ce54cbdd325fb46..8316e24aecdafd8f28618d69cb7a2f77df0fff84 100644
--- a/src/components/system/message/AddTemplate.jsx
+++ b/src/components/system/message/AddTemplate.jsx
@@ -1,4 +1,4 @@
-import { Button, Drawer, Space, Table } from 'antd';
+import { Button, Drawer, Form, Space, Table } from 'antd';
 import React, { useEffect, useState } from 'react';
 import request from '@/utils/request';
 import {
@@ -11,6 +11,7 @@ function AddTemplate(props) {
   const { drawerVisible, setFalse, smsArea, setSelectedRowKeys, selectedRowKeys, fetchTableData } =
     props;
   const [drawerDataSource, setDrawerDataSource] = useState([]);
+  const [searchForm] = Form.useForm();
   const [pagination, setPagination] = useState({ total: 0, current: 1, pageSize: 10 });
   const columns = [
     ...publicMessageAuthorization,
@@ -28,10 +29,11 @@ function AddTemplate(props) {
       fetchAddHostTableData();
     }
   }, [drawerVisible]);
-  function fetchAddHostTableData() {
+  function fetchAddHostTableData(values) {
     request
-      .getWMessage('/manager/smsTemplate/templateList', {
-        isEnable: true,
+      .getWMessage('/manager/smsTemplateAccredit/templateList', {
+        smsArea,
+        ...values,
       })
       .then((res) => {
         setDrawerDataSource(res.data.list || []);
@@ -61,6 +63,14 @@ function AddTemplate(props) {
   function onSearch(value) {
     fetchAddHostTableData({ pageSize: pagination.pageSize, ...value });
   }
+  function onChange(page, filters) {
+    const params = {
+      current: page.current,
+      pageSize: page.pageSize,
+      ...filters,
+    };
+    fetchAddHostTableData({ ...params, ...searchForm.getFieldsValue() });
+  }
   return (
     <Drawer
       title="娣诲姞鐭俊妯℃澘"
@@ -72,18 +82,19 @@ function AddTemplate(props) {
         <div className="text-right">
           <Space>
             <Button onClick={onClose}>鍙栨秷</Button>
-            <Button type="primary" onClick={handleSave}>
+            <Button type="primary" onClick={handleSave} disabled={selectedRowKeys?.length === 0}>
               纭畾
             </Button>
           </Space>
         </div>
       }
     >
-      <SearchBar onSearch={onSearch} itemList={publicMessageItemList} />
+      <SearchBar onSearch={onSearch} itemList={publicMessageItemList} form={searchForm} />
       <Table
         dataSource={drawerDataSource}
         columns={columns}
         rowKey="id"
+        onChange={onChange}
         rowSelection={{
           selectedRowKeys,
           type: 'checkbox',
diff --git a/src/components/system/message/DataAcquisition.jsx b/src/components/system/message/DataAcquisition.jsx
index ce0e4bf69160a0eed175902478a2196b70251ad7..92da2678c7d7affe6c6b2f7ca42f454d9b00b5b8 100644
--- a/src/components/system/message/DataAcquisition.jsx
+++ b/src/components/system/message/DataAcquisition.jsx
@@ -10,6 +10,10 @@ import EvalToolbar from '@/components/evalBid/EvalToolbar';
 import { useHistory, useParams } from 'react-router-dom';
 import request from '@/utils/request';
 
+const fieldTypeMap = {
+  baseAttributes: '1', //鍩虹灞炴€�
+  labelParameters: '2', //鏍囩鍙傛暟
+};
 function MappingFieldsSelect({ tableName, onChange, value }) {
   const [options, setOptions] = useState([]);
   function fetchSelectOptions() {
@@ -31,7 +35,7 @@ function MappingFieldsSelect({ tableName, onChange, value }) {
       style={{ width: '100%' }}
       showSearch
       onChange={onChange}
-      defaultValue={value}
+      value={value}
     />
   );
 }
@@ -124,15 +128,15 @@ function DataAcquisition({ setCurrent }) {
       dataIndex: 'labelName',
       width: 200,
       renderFormItem: (_, config) => {
-        const { labelName } = config.record;
+        const { labelName, fieldType } = config.record;
         return (
           <Space>
             <span>{labelName}</span>
-            {/*{ifAvailable ? (*/}
-            {/*  <Tag color="warning">鏍囩鍙傛暟</Tag>*/}
-            {/*) : (*/}
-            <Tag color="processing">鍩虹灞炴€�</Tag>
-            {/*)}*/}
+            {fieldType === fieldTypeMap.labelParameters ? (
+              <Tag color="warning">鏍囩鍙傛暟</Tag>
+            ) : (
+              <Tag color="processing">鍩虹灞炴€�</Tag>
+            )}
           </Space>
         );
       },
@@ -151,7 +155,14 @@ function DataAcquisition({ setCurrent }) {
         ],
       },
       renderFormItem: (_, item) => {
-        return <Select style={{ width: '100%' }} options={tableOptions} showSearch />;
+        return (
+          <Select
+            style={{ width: '100%' }}
+            options={associationOptions}
+            showSearch
+            onSelect={() => onSelect(item)}
+          />
+        );
       },
     },
     {
@@ -172,6 +183,23 @@ function DataAcquisition({ setCurrent }) {
       },
     },
   ];
+  function onSelect(item) {
+    const { record } = item;
+    fieldMappingFormRef.current?.setRowData(item.recordKey, {
+      mappingField: null,
+    });
+    setFieldMappingList(
+      fieldMappingList.map((i) => {
+        if (i.id === record.id) {
+          return {
+            ...i,
+            mappingField: null,
+          };
+        }
+        return i;
+      }),
+    );
+  }
   function handleChange() {
     const formValues = editTableForm.getFieldsValue();
     const resultArray = Object.keys(formValues).map((key) => ({
@@ -262,10 +290,16 @@ function DataAcquisition({ setCurrent }) {
         id: key,
         ...res2[key],
       }));
-      const smsRelationshipList = Object.keys(dataSource).map((key) => ({
-        id: key,
-        ...dataSource[key],
-      }));
+      const smsRelationshipList = Object.keys(dataSource).map((key) => {
+        const currentData = dataSource[key];
+        if (currentData?.filterCondition && typeof currentData?.filterCondition === 'string') {
+          currentData.filterCondition = JSON.parse(currentData.filterCondition);
+        }
+        return {
+          id: key,
+          ...currentData,
+        };
+      });
       const result = extractUniqueAAValues(associatedCondition);
       const tables = dataSource.map((item) => item.smsRelationshipTable);
       const uniqueDataSource = new Set(tables);
@@ -279,10 +313,7 @@ function DataAcquisition({ setCurrent }) {
       }
       return request.postWMessage('/manager/smsTemplate/saveDataConfig', {
         id,
-        associatedCondition:
-          typeof associatedCondition === 'string'
-            ? JSON.parse(associatedCondition)
-            : associatedCondition,
+        associatedCondition,
         smsFieldMappings,
         smsRelationshipList,
       });
@@ -309,11 +340,13 @@ function DataAcquisition({ setCurrent }) {
     });
   }
   function fetchFieldMappingList() {
-    return request.getWMessage('/manager/smsFieldMapping/fieldMappingList').then((res) => {
-      const { data } = res;
-      setFieldMappingList(data);
-      setMappingEditableKeys(data.map((i) => i.id));
-    });
+    return request
+      .getWMessage('/manager/smsTemplateFieldMapping/fieldMappingList', { templateId: id })
+      .then((res) => {
+        const { data } = res;
+        setFieldMappingList(data);
+        setMappingEditableKeys(data.map((i) => i.id));
+      });
   }
   function fetchSelectOptions(tableName) {
     return request.getWMessage('/syndata/dataModel/getTableColumn', { tableName }).then((res) => {
diff --git a/src/components/system/message/MessageDetailLog.jsx b/src/components/system/message/MessageDetailLog.jsx
index dcdc0537474cd313542c94a826743180fbacba47..9e362c92821ffe6b64adfd4c4e9ac5800cd9915d 100644
--- a/src/components/system/message/MessageDetailLog.jsx
+++ b/src/components/system/message/MessageDetailLog.jsx
@@ -1,4 +1,4 @@
-import { Cascader, Drawer, Table, Typography } from 'antd';
+import { Cascader, Drawer, Form, Table, Typography } from 'antd';
 import React, { useEffect, useState } from 'react';
 import request from '@/utils/request';
 import SearchBar from '@/components/forms/SearchBar';
@@ -9,6 +9,7 @@ function MessageDetailLog(props) {
   const { drawerVisible, setFalse, templateId } = props;
   const [drawerDataSource, setDrawerDataSource] = useState([]);
   const [areaList, setAreaList] = useState([]);
+  const [searchForm] = Form.useForm();
   const [pagination, setPagination] = useState({ total: 0, current: 1, pageSize: 10 });
   const columns = [
     {
@@ -60,8 +61,8 @@ function MessageDetailLog(props) {
     },
     {
       title: '鐢ㄦ埛鍚嶇О',
-      dataIndex: 'smsReceiveName',
-      key: 'smsReceiveName',
+      dataIndex: 'smsReceiverName',
+      key: 'smsReceiverName',
       align: 'center',
       width: 100,
       render: (text) => text || '-',
@@ -134,6 +135,14 @@ function MessageDetailLog(props) {
         setDrawerDataSource(res.data.list);
       });
   }
+  function onChange(page, filters) {
+    const params = {
+      current: page.current,
+      pageSize: page.pageSize,
+      ...filters,
+    };
+    fetchAddHostTableData({ ...params, ...searchForm.getFieldsValue() });
+  }
   function onClose() {
     setFalse();
   }
@@ -142,8 +151,19 @@ function MessageDetailLog(props) {
   }
   return (
     <Drawer title="鐭俊鐢熸垚鏄庣粏" open={drawerVisible} onClose={onClose} width={'65vw'}>
-      <SearchBar onSearch={onSearch} itemList={itemList} />
-      <Table dataSource={drawerDataSource} columns={columns} rowKey="id" pagination={false} />
+      <SearchBar onSearch={onSearch} itemList={itemList} form={searchForm} />
+      <Table
+        dataSource={drawerDataSource}
+        columns={columns}
+        rowKey="id"
+        onChange={onChange}
+        pagination={{
+          ...pagination,
+          showQuickJumper: true,
+          showSizeChanger: true,
+          showTotal: (total) => `鍏� ${total} 椤筦,
+        }}
+      />
     </Drawer>
   );
 }
diff --git a/src/components/system/message/MessageTemplates.jsx b/src/components/system/message/MessageTemplates.jsx
index 015bddabad4f984843625c412cc185acf74875b3..8817a30f16fe41821c383d35ae58581293ae3411 100644
--- a/src/components/system/message/MessageTemplates.jsx
+++ b/src/components/system/message/MessageTemplates.jsx
@@ -58,7 +58,7 @@ function MessageTemplates({ isAuthorization = true, setEditor, form }) {
             ]}
           >
             <EditorFormItem
-              height={400}
+              height={'400px'}
               getEditor={getEditor}
               initProps={{
                 paste_data_images: false,
diff --git a/src/components/system/message/TemplateConfiguration.jsx b/src/components/system/message/TemplateConfiguration.jsx
index 05f3092a9909eb2bf51f10a8cecc771ad09bbdd8..05cc0bc9659dab6c8239e4b644d593ad727ab0cd 100644
--- a/src/components/system/message/TemplateConfiguration.jsx
+++ b/src/components/system/message/TemplateConfiguration.jsx
@@ -40,7 +40,7 @@ function TemplateConfiguration({ setCurrent }) {
       templateContent: params.templateContent,
       triggerCondition: params.triggerCondition,
     };
-    request.postWMessage('/manager/smsTemplate/saveTemplate', { ...saveParam });
+    return request.postWMessage('/manager/smsTemplate/saveTemplate', { ...saveParam });
   }
   function handleSaveTemplates() {
     return form.validateFields().then((values) => {
@@ -54,7 +54,7 @@ function TemplateConfiguration({ setCurrent }) {
       const { data } = res;
       form.setFieldsValue({
         ...data,
-        triggerCondition: JSON.parse(data.triggerCondition),
+        triggerCondition: data.triggerCondition ? JSON.parse(data.triggerCondition) : {},
         conditions: data.triggerCondition,
       });
       fetchSelectOptions(res.data.tableName);
@@ -63,7 +63,7 @@ function TemplateConfiguration({ setCurrent }) {
   function handleSaveTagging() {
     const html = editor.getContent();
     const labelIds = parseInputIds(html);
-    request.postWMessage('/manager/smsTemplateLabel/saveTemplateLabel', {
+    return request.postWMessage('/manager/smsTemplateLabel/saveTemplateLabel', {
       templateId: id,
       labelIds,
     });
diff --git a/src/pages/system/message/MessageLog.jsx b/src/pages/system/message/MessageLog.jsx
index 9c6b1903010a7a7f3c8c37f19ef6f22e387d8477..62357b8e08732b8dd5d9c30e514ceefd42c40ab8 100644
--- a/src/pages/system/message/MessageLog.jsx
+++ b/src/pages/system/message/MessageLog.jsx
@@ -18,6 +18,7 @@ function MessageLog() {
     ...publicMessageItemList,
     {
       name: 'smsArea',
+      key: 'smsArea',
       label: '鍦板尯',
       component: Cascader,
       componentProps: {
@@ -88,7 +89,11 @@ function MessageLog() {
   return (
     <>
       <Card title="鐭俊鐢熸垚鏃ュ織">
-        <ManagePage tableColumns={tableColumns} searchBarItemList={searchBarItemList} />
+        <ManagePage
+          tableColumns={tableColumns}
+          searchBarItemList={searchBarItemList}
+          tableProps={{ rowKey: 'templateId' }}
+        />
       </Card>
       <MessageDetailLog drawerVisible={visible} setFalse={setFalse} templateId={templateId} />
     </>
diff --git a/src/pages/system/message/MessageTemplateConfiguration.jsx b/src/pages/system/message/MessageTemplateConfiguration.jsx
index fe9c92adc2e152301be74637c671c97cf305635b..6f640773e889c28c0717176ab59f78f901ee48c9 100644
--- a/src/pages/system/message/MessageTemplateConfiguration.jsx
+++ b/src/pages/system/message/MessageTemplateConfiguration.jsx
@@ -20,7 +20,8 @@ function MessageTemplateConfiguration(props) {
   }
   function handleEdit(record) {
     setTrue();
-    form.setFieldsValue(record);
+    const param = { ...record, sendUser: record?.sendUser.toString() };
+    form.setFieldsValue(param);
   }
   function handleFormSubmit() {
     return form.validateFields().then((values) => {
@@ -91,6 +92,8 @@ function MessageTemplateConfiguration(props) {
   ];
   const formItems = [
     { name: 'id', key: 'id', visible: false },
+    { name: 'templateContent', key: 'templateContent', visible: false },
+    { name: 'sendUserName', key: 'sendUserName', visible: false },
     {
       name: 'templateIdentification',
       key: 'templateIdentification',
@@ -119,12 +122,14 @@ function MessageTemplateConfiguration(props) {
       key: 'dbName',
       label: '搴撳悕',
       required: true,
+      disabled: form.getFieldValue('templateContent'),
     },
     {
       name: 'tableName',
       key: 'tableName',
       label: '琛ㄥ悕',
       required: true,
+      disabled: form.getFieldValue('templateContent'),
     },
     {
       name: 'sendUser',
@@ -139,6 +144,9 @@ function MessageTemplateConfiguration(props) {
         requestParam: { dictType: 'office_type' },
         titleAttr: 'dictLabel',
         valueAttr: 'dictValue',
+        onSelect: (_, item) => {
+          form.setFieldValue('sendUserName', item.label);
+        },
       },
     },
     {