diff --git a/src/api/screening.js b/src/api/resident/screening.js
similarity index 72%
rename from src/api/screening.js
rename to src/api/resident/screening.js
index df47b00c9e6deb09c1c446c08ead6b34a58ac0d1..85297656221b12780fcbcb52909c615f6b6a76ec 100644
--- a/src/api/screening.js
+++ b/src/api/resident/screening.js
@@ -1,4 +1,4 @@
-import { fetchBase } from './fetch.js'
+import { fetchBase } from '../fetch.js'
 
 // 证件号查询是否管理慢病档案
 export function queryResidentInfo(params) {
@@ -14,3 +14,8 @@ export function querScreenList(params) {
 export function querScreenDetail(params) {
     return fetchBase({ url: `/chronic-resident/v1/chronic-screening-record/record`, body: params, loading: true })
 }
+
+// 新增筛查记录
+export function savefirstScreen(params) {
+    return fetchBase({ url: `/chronic-resident/v1/chronic-screening-record/save`, body: params, loading: true })
+}
\ No newline at end of file
diff --git a/src/register.js b/src/register.js
index 04f595398184c7f191172f9c3eaffc4b754a6fa6..0e7bdc963e99c78a3c6c38db1dad2d6bc7d58473 100644
--- a/src/register.js
+++ b/src/register.js
@@ -14,4 +14,23 @@ dayjs.locale('cn')
 export function registe(app) {
     // 自定义组件
     app.use(DocIcon)
+
+    app.config.globalProperties.$idCardHide = idCardHide
+    app.config.globalProperties.$phoneHide = phoneHide
+}
+
+// idCard 脱敏
+function idCardHide(idCard) {
+    if (!idCard || idCard.length < 18) {
+        return idCard
+    }
+    return idCard.substring(0, 6) + '******' + idCard.substring(14)
+}
+
+// phone 脱敏
+function phoneHide(phone) {
+    if (!phone || phone.length < 11) {
+        return phone
+    }
+    return phone.substring(0, 3) + '******' + phone.substring(9)
 }
diff --git a/src/resident/screening/first/detail/Detail.vue b/src/resident/screening/first/detail/Detail.vue
index 3df2f2e132cc0f23b9674c7929f7973eed8cecc5..74bb3f1dbd375a07092b2fcf36aed86b4b7bcd1d 100644
--- a/src/resident/screening/first/detail/Detail.vue
+++ b/src/resident/screening/first/detail/Detail.vue
@@ -9,7 +9,7 @@
             <span>慢病自我初筛详情</span>
         </div>
         <div class="py-4 border-bottom">
-            <div class="px-4 title">居民信息</div>
+            <div class="px-4 doc-title">居民信息</div>
         </div>
         <div class="px-4 list">
             <div v-for="item in columnsBase" :key="item.key"
@@ -20,7 +20,7 @@
         </div>
 
         <div class="py-4 border-bottom">
-            <div class="px-4 title">筛查信息</div>
+            <div class="px-4 doc-title">筛查信息</div>
         </div>
         <div class="px-4 list">
             <template v-for="item in columnsScreen" :key="item.key">
@@ -74,7 +74,7 @@
 
 <script>
 import { showNotify } from 'vant'
-import { querScreenDetail } from '@/api/screening.js'
+import { querScreenDetail } from '@/api/resident/screening.js'
 
 export default {
     data() {
@@ -135,7 +135,7 @@ export default {
             })
         },
         onBack() {
-
+            this.$router.back()
         }
     }
 }
diff --git a/src/resident/screening/first/detail/List.vue b/src/resident/screening/first/detail/List.vue
index 861444438146b92594080e29e7576fd646ba76ff..da4d01cd2659bd528da2d582e5b137eb3e2ad037 100644
--- a/src/resident/screening/first/detail/List.vue
+++ b/src/resident/screening/first/detail/List.vue
@@ -1,14 +1,48 @@
 <template>
-    <div>
-
+    <div class="h-full">
+        <div class="p-3 text-16 text-black text-center shrink-0 top-bar">
+            <!-- <span class="back-bt">
+                <span @click="onBack">
+                    <doc-icon type="doc-left" />
+                </span>
+            </span> -->
+            <span>慢病筛查记录</span>
+        </div>
+        <div class='card' v-for='item in list' :key="item.id">
+            <div class="p-4">
+                <div class='text-16 font-semibold mb-2 title'>{{ item.residentName }}</div>
+                <div class="mb-2">
+                    <span class="label">证件号码</span>
+                    <span>{{ $idCardHide(item.idCard) }}</span>
+                </div>
+                <div class="mb-2">
+                    <span class="label">筛查日期</span>
+                    <span>{{ item.screenDate }}</span>
+                </div>
+                <div class="mb-2">
+                    <span class="label">筛查机构</span>
+                    <span>{{ item.screenUnitName }}</span>
+                </div>
+                <div class="bt-box flex pt-2 justify-end">
+                    <van-button type="primary" size="small"
+                        @click="toDetail(item)">详 情</van-button>
+                </div>
+            </div>
+            <div class="divide"></div>
+        </div>
     </div>
 </template>
 
 <script>
 import { showNotify } from 'vant'
-import { querScreenList } from '@/api/screening.js'
+import { querScreenList } from '@/api/resident/screening.js'
 
 export default {
+    data() {
+        return {
+            list: []
+        }
+    },
     computed: {
         routeQuery() {
             return this.$route.query
@@ -26,12 +60,35 @@ export default {
     },
     methods: {
         init() {
-            querScreenList({ idCard: this.idCard })
+            querScreenList({ idCard: this.idCard }).then(res => {
+                this.list = res.data || []
+            })
+        },
+        toDetail(record) {
+            if (!record) return
+            const path = `/resident/screening/first/detail/${record.id}`
+            this.$router.push({ path })
         }
     }
 }
 </script>
 
 <style lang="less" scoped>
-
+@import url('../../../utils/common.less');
+.card {
+    .label {
+        display: inline-block;
+        min-width: 5em;
+        color: #8C8C8C;
+    }
+    .bt-box {
+        border-top: 1px solid var(--van-border-color);
+    }
+    .divide {
+        border-top: 6px solid #f5f5f5;
+    }
+    &:last-child {
+        .divide { display: none; }
+    }
+}
 </style>
diff --git a/src/resident/screening/first/form/BaseInfo.vue b/src/resident/screening/first/form/BaseInfo.vue
index f149926c3019c9ab99cfd4c01e3f40848edf3297..307d8285538e944ad02dfec80f88ecb39f8c84ea 100644
--- a/src/resident/screening/first/form/BaseInfo.vue
+++ b/src/resident/screening/first/form/BaseInfo.vue
@@ -1,7 +1,7 @@
 <template>
     <div class="base-info">
         <div class="flex py-4 border-bottom">
-            <div class="px-4 title">居民信息</div>
+            <div class="px-4 doc-title">居民信息</div>
             <div class="text-12">请准确填写您的证件信息,标*内容为必填</div>
         </div>
         <van-form label-width="5em" ref="form" class="screen-form"
@@ -285,9 +285,9 @@ export default {
             this.form.dataBirth = info.dataBirth
         },
         submit() {
-            this.recordForm.base = {...this.form}
-            this.$parent.onNext()
-            return
+            // this.recordForm.base = {...this.form}
+            // this.$parent.onNext()
+            // return
             this.$refs.form.validate().then(() => {
                 this.recordForm.base = {...this.form}
                 this.$parent.onNext()
diff --git a/src/resident/screening/first/form/IdCheck.vue b/src/resident/screening/first/form/IdCheck.vue
index 534955162ff5bec2c03dacc1e8269d067c4474fa..f9f3410ebfc48a85968b891a66f52c0c707dd502 100644
--- a/src/resident/screening/first/form/IdCheck.vue
+++ b/src/resident/screening/first/form/IdCheck.vue
@@ -1,7 +1,7 @@
 <template>
     <div class="h-full flex flex-col id-check">
         <div class="flex items-end py-4 border-bottom">
-            <div class="px-4 font-semibold title">居民证件信息</div>
+            <div class="px-4 font-semibold doc-title">居民证件信息</div>
             <div class="text-12">请准确填写您的证件信息,标*内容为必填</div>
         </div>
         <van-form label-width="5em" ref="form"
@@ -46,7 +46,7 @@
 <script>
 import { useStore } from '@/resident/store/index.js'
 import { idCardRule } from '@/utils/commonReg.js'
-import { queryResidentInfo } from '@/api/screening.js'
+import { queryResidentInfo } from '@/api/resident/screening.js'
 import { showNotify } from 'vant'
 
 export default {
diff --git a/src/resident/screening/first/form/Index.vue b/src/resident/screening/first/form/Index.vue
index b9918b90f6a5bfb7708fc15c271ba25a046a24b8..2d63dbd73e4ba14dd1920bed78e528b0362ca88f 100644
--- a/src/resident/screening/first/form/Index.vue
+++ b/src/resident/screening/first/form/Index.vue
@@ -69,7 +69,9 @@ export default {
     created() {
         if (!this.doctorId) {
             showNotify({ type: 'warning', message: '未获取到医生信息', duration: 0 })
+            return
         }
+        this.recordForm.doctorId = this.doctorId
     },
     methods: {
         onNext(step) {
diff --git a/src/resident/screening/first/form/Result.vue b/src/resident/screening/first/form/Result.vue
index 2d3facd45a963d24af5fe370fb97b55b9a85981f..8cfd0e8c5d5b4a38227d83f009b7d4611d5e5884 100644
--- a/src/resident/screening/first/form/Result.vue
+++ b/src/resident/screening/first/form/Result.vue
@@ -46,11 +46,19 @@ export default {
             const highItem = this.screenInfo.highItem
             return highItem && highItem.length ?
                 this.store.getDict('CP00113').filter(e => highItem.includes(e.value)).map(e => e.name) : []
+        },
+        baseInfo() {
+            return this.recordForm.base || {}
         }
     },
     methods:{ 
         toRecord() {
-
+            this.$router.replace({
+                path: '/resident/screening/first/detail',
+                query: {
+                    idCard: this.baseInfo.idCard
+                }
+            })
         }
     }
 }
diff --git a/src/resident/screening/first/form/ScreenInfo.vue b/src/resident/screening/first/form/ScreenInfo.vue
index 624261889448a6282ce1a06af81fafc96130cdda..3ad5e0adf8d7e5de81c1a81544898ed92c2bd9ec 100644
--- a/src/resident/screening/first/form/ScreenInfo.vue
+++ b/src/resident/screening/first/form/ScreenInfo.vue
@@ -1,7 +1,7 @@
 <template>
     <div class="screen-info">
         <div class="flex items-end py-4 border-bottom">
-            <div class="px-4 font-semibold title">筛查信息</div>
+            <div class="px-4 font-semibold doc-title">筛查信息</div>
             <div class="text-12">请根据您身体实际情况填写以下内容</div>
         </div>
 
@@ -322,7 +322,8 @@
 
 <script>
 import { useStore } from '@/resident/store/index.js'
-import { checkboxReject } from '@/utils/common.js'
+import { checkboxReject, fetchDataHandle } from '@/utils/common.js'
+import { savefirstScreen } from '@/api/resident/screening.js'
 import dayjs from 'dayjs'
 
 const defaultForm = (info = {}) => {
@@ -446,8 +447,19 @@ export default {
                 this.resultHandle()
                 this.recordForm.screen = {...this.form}
                 console.log(this.form)
+                const query = {
+                    ...this.form,
+                    screenDoctorId: this.recordForm.doctorId,
+                    residentsRecord: this.recordForm.base
+                }
                 // 提交表单
-                this.$parent.onNext()
+                savefirstScreen(fetchDataHandle(query, {
+                    familyHistory: 'arrToStr',
+                    highItem: 'arrToStr',
+                    medicalHistory: 'arrToStr',
+                })).then(() => {
+                    this.$parent.onNext()
+                })
             }).catch(err => console.warn(err))
         },
         onPrev() {
diff --git a/src/resident/utils/common.less b/src/resident/utils/common.less
index f54e07106c9aadd7a65d3abfa68eb6f932efc3f8..e136524e1d14adb8dc9a4658e7d68fa29951fa49 100644
--- a/src/resident/utils/common.less
+++ b/src/resident/utils/common.less
@@ -1,4 +1,4 @@
-.title {
+.doc-title {
     font-weight: 600;
     display: flex;
     align-items: center;