Browse Source

字段核对

CzRger 1 year ago
parent
commit
b5cac05527

+ 1 - 0
src/components/cus/CusDialog.vue

@@ -16,6 +16,7 @@
       align-center
       :before-close="beforeClose"
       :show-close="false"
+      :append-to-body="$attrs['append-to-body'] ? $attrs['append-to-body'] : true"
   >
     <template #header>
       <div class="_cus-dialog-head">

+ 12 - 0
src/components/cus/CusFormColumn.vue

@@ -406,6 +406,15 @@ export default defineComponent({
             background-color: transparent;
           }
         }
+        .el-range-separator {
+          width: 16px;
+          flex: unset;
+          box-sizing: border-box;
+        }
+        input {
+          flex: 1;
+          font-size: 12px;
+        }
       }
       .el-textarea {
         .el-textarea__inner {
@@ -415,6 +424,9 @@ export default defineComponent({
           box-shadow: none;
         }
       }
+      .el-date-editor--time {
+        height: 34px;
+      }
     }
   }
 }

+ 1 - 1
src/components/cus/cus-form-link/cascader.vue

@@ -6,7 +6,7 @@
        v-model="paramVal"
        :placeholder="$attrs.placeholder ? $attrs.placeholder : `请选择${label}`"
        :options="options"
-       clearable
+       :clearable="$util.isValue($attrs.clearable) ? $attrs.clearable : true"
        filterable
        :props="propsCpt"
        :teleported="false"

+ 10 - 9
src/components/cus/cus-form-link/dept.vue

@@ -6,7 +6,7 @@
         v-model="paramVal"
         :placeholder="$attrs.placeholder ? $attrs.placeholder : `请选择${label}`"
         :data="optionsCpt"
-        clearable
+        :clearable="$util.isValue($attrs.clearable) ? $attrs.clearable : true"
         filterable
         :check-strictly="checkStrictly"
         node-key="deptId"
@@ -62,16 +62,17 @@ export default defineComponent({
       state.paramVal = n
     })
     const optionsCpt = computed(() => {
-      return props.all === false ? store.state.app.deptTree : store.state.app.deptAllTree
+      // return props.all === false ? store.state.app.deptTree : store.state.app.deptAllTree
+      return []
     })
     onMounted(() => {
-      Promise.all([
-        store.dispatch('app/LOAD_DEPT_TREE'),
-        store.dispatch('app/LOAD_DEPT_ALL_TREE')
-      ]).then(() => {
-        state.loading = false
-        emit('emitDefault', optionsCpt.value[0])
-      })
+      // Promise.all([
+      //   store.dispatch('app/LOAD_DEPT_TREE'),
+      //   store.dispatch('app/LOAD_DEPT_ALL_TREE')
+      // ]).then(() => {
+      //   state.loading = false
+      //   emit('emitDefault', optionsCpt.value[0])
+      // })
     })
     return {
       ...toRefs(state),

+ 1 - 1
src/components/cus/cus-form-link/select.vue

@@ -5,7 +5,7 @@
         v-bind="$attrs"
         v-model="paramVal"
         :placeholder="$attrs.placeholder ? $attrs.placeholder : `请选择${label}`"
-        clearable
+        :clearable="$util.isValue($attrs.clearable) ? $attrs.clearable : true"
         filterable
         @change="handleChange"
         :popper-append-to-body="false"

+ 9 - 4
src/views/system/daily-manage/index.vue

@@ -13,12 +13,18 @@
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="单位:"
+                link="dept"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
-                label="值班员:"
+                label="提交人员:"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
-                label="签卡时间:"
+                label="值班时间:"
+                link="datetime"
+                type="datetimerange"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="提交时间:"
                 link="datetime"
                 type="datetimerange"
                 v-model:param="queryForm.shipId"/>
@@ -117,10 +123,9 @@ export default defineComponent({
       querySort: {},
       //  表格表头
       tableHead: [
-        {value: "p1", label: "标题", show: true},
         {value: "p1", label: "日志标题", show: true},
-        {value: "p1", label: "单位", show: true},
         {value: "p1", label: "席位编号", show: true},
+        {value: "p1", label: "单位", show: true},
         {value: "p1", label: "提交人员", show: true},
         {value: "p1", label: "值班时间", show: true},
         {value: "p1", label: "提交时间", show: true},

+ 5 - 4
src/views/system/login-log/index.vue

@@ -13,11 +13,12 @@
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="单位:"
+                link="dept"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="登陆时间:"
-                link="date"
-                type="daterange"
+                link="datetime"
+                type="datetimerange"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="状态:"
@@ -33,8 +34,8 @@
                 ]"/>
             <CusFormColumn
                 label="注销时间:"
-                link="date"
-                type="daterange"
+                link="datetime"
+                type="datetimerange"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="设备IP:"

+ 2 - 2
src/views/system/notice-announcement/detail.vue

@@ -25,7 +25,7 @@
         <CusFormColumn
             :span="24"
             required
-            label="操作类型:"
+            label="类型:"
             link="select"
             static
             v-model:param="cusDetail.p3"
@@ -38,7 +38,7 @@
             ]"/>
         <CusFormColumn
             :span="24"
-            label="上传件:"
+            label="上传件:"
             link="upload"
             v-model:param="cusDetail.fileList"/>
       </CusForm>

+ 2 - 1
src/views/system/notice-announcement/index.vue

@@ -13,6 +13,7 @@
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="发布单位:"
+                link="dept"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="发布人:"
@@ -72,7 +73,7 @@
             <template #do-column-value="{ scope }">
               <div class="__cus-table_do">
                 <div class="__cus-table_do-green __hover" @click="onView(scope.row)">
-                  <SvgIcon name="add" size="16"/>查看
+                  <SvgIcon name="view" size="16"/>查看
                 </div>
                 <div class="__cus-table_do-blue __hover" @click="onEdit(scope.row)">
                   <SvgIcon name="edit" size="16"/>编辑

+ 9 - 1
src/views/system/operation-records/index.vue

@@ -13,10 +13,18 @@
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="操作人单位:"
+                link="dept"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="操作模块:"
-                v-model:param="queryForm.shipId"/>
+                v-model:param="queryForm.shipId"
+                static
+                labelKey="label"
+                valueKey="value"
+                :options="[
+                    {label: '席位管理', value: '1'},
+                    {label: '签卡管理', value: '2'},
+                ]"/>
             <CusFormColumn
                 label="操作类型:"
                 link="select"

BIN
src/views/system/public-configuration/icon.png


+ 198 - 1
src/views/system/public-configuration/index.vue

@@ -1,4 +1,143 @@
 <template>
+  <div class="__normal-page">
+    <div class="__normal-content">
+      <div class="block">
+        <div class="block-title">
+          <span>01 签卡设置</span>
+          <img class="icon" src="./icon.png"/>
+        </div>
+        <div class="block-content">
+          <div class="item">
+            <div class="item-label">签到时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="time"
+                  v-model:param="signForm.p1"
+                  :clearable="false"/>
+            </div>
+          </div>
+          <div class="item">
+            <div class="item-label">签到提醒时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="select"
+                  static
+                  v-model:param="signForm.p2"
+                  labelKey="label"
+                  valueKey="value"
+                  :options="[
+                    {label: '类型一', value: '1'},
+                    {label: '类型二', value: '2'},
+                    {label: '类型三', value: '3'},
+                  ]"
+                  :clearable="false"/>
+            </div>
+          </div>
+          <div class="item">
+            <div class="item-label">签退时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="time"
+                  v-model:param="signForm.p3"
+                  :clearable="false"/>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="block">
+        <div class="block-title">
+          <span>02 日志设置</span>
+          <img class="icon" src="./icon.png"/>
+        </div>
+        <div class="block-content">
+          <div class="item">
+            <div class="item-label">截止提交时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="time"
+                  v-model:param="dailyForm.p1"
+                  :clearable="false"/>
+            </div>
+          </div>
+          <div class="item">
+            <div class="item-label">日志提交提醒时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="select"
+                  static
+                  v-model:param="dailyForm.p2"
+                  labelKey="label"
+                  valueKey="value"
+                  :options="[
+                    {label: '类型一', value: '1'},
+                    {label: '类型二', value: '2'},
+                    {label: '类型三', value: '3'},
+                  ]"
+                  :clearable="false"/>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="block">
+        <div class="block-title">
+          <span>03 周报设置</span>
+          <img class="icon" src="./icon.png"/>
+        </div>
+        <div class="block-content">
+          <div class="item">
+            <div class="item-label">截止提交时间:</div>
+            <div class="item-form">
+              <div class="col">
+                <CusFormColumn
+                    :span="24"
+                    link="select"
+                    static
+                    v-model:param="weeklyForm.p1"
+                    labelKey="label"
+                    valueKey="value"
+                    :options="[
+                      {label: '类型一', value: '1'},
+                      {label: '类型二', value: '2'},
+                      {label: '类型三', value: '3'},
+                    ]"
+                    :clearable="false"/>
+              </div>
+             <div class="col">
+               <CusFormColumn
+                   :span="24"
+                   link="time"
+                   v-model:param="weeklyForm.p2"
+                   :clearable="false"/>
+             </div>
+            </div>
+          </div>
+          <div class="item">
+            <div class="item-label">周报提交提醒时间:</div>
+            <div class="item-form">
+              <CusFormColumn
+                  :span="24"
+                  link="select"
+                  static
+                  v-model:param="weeklyForm.p3"
+                  labelKey="label"
+                  valueKey="value"
+                  :options="[
+                    {label: '类型一', value: '1'},
+                    {label: '类型二', value: '2'},
+                    {label: '类型三', value: '3'},
+                  ]"
+                  :clearable="false"/>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script lang="ts">
@@ -25,7 +164,11 @@ export default defineComponent({
     const router = useRouter();
     const route = useRoute();
     const that = (getCurrentInstance() as ComponentInternalInstance).appContext.config.globalProperties
-    const state = reactive({})
+    const state = reactive({
+      signForm: {},
+      dailyForm: {},
+      weeklyForm: {},
+    })
     return {
       ...toRefs(state)
     }
@@ -34,4 +177,58 @@ export default defineComponent({
 </script>
 
 <style scoped lang="scss">
+.__normal-content {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  column-gap: 32px;
+  padding-top: 40px;
+  padding-right: 30px;
+  .block {
+    display: flex;
+    flex-direction: column;
+    .block-title {
+      width: 100%;
+      height: 45px;
+      background-image: url("./title-bg.png");
+      background-repeat: no-repeat;
+      background-size: 100% 100%;
+      display: flex;
+      align-items: center;
+      padding-left: 20px;
+      font-size: 17px;
+      font-family: Microsoft YaHei-Bold, Microsoft YaHei;
+      font-weight: bold;
+      color: #FFFAF9;
+      box-sizing: border-box;
+      >span {
+        margin-right: 8px;
+      }
+    }
+    .block-content {
+      flex: 1;
+      margin-top: 24px;
+      background-color: rgba(0,108,255,0.1);
+      border-radius: 8px;
+      border: 1px solid rgba(54,155,255,0.2);
+      padding: 24px;
+      .item {
+        .item-label {
+          font-size: 16px;
+          font-family: PingFang SC-Medium, PingFang SC;
+          font-weight: 500;
+          color: rgba(255,255,255,0.6);
+          margin-bottom: 10px;
+        }
+        .item-form {
+          display: flex;
+          align-items: center;
+          justify-content: space-between;
+          >div {
+            width: calc((100% - 10px) / 2);
+          }
+        }
+      }
+    }
+  }
+}
 </style>

BIN
src/views/system/public-configuration/title-bg.png


+ 191 - 2
src/views/system/sign-manage/index.vue

@@ -1,4 +1,83 @@
 <template>
+  <div class="__normal-page">
+    <div class="__normal-content">
+      <CusContent
+          v-model:tableHead="tableHead"
+          @handleReset="handleReset"
+          @handleSearch="onSearch"
+      >
+        <template #fieldOut>
+          <CusForm labelWidth="100px" @handleEnter="onSearch">
+            <CusFormColumn
+                label="席位编号:"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="单位:"
+                link="dept"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="值班员:"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="联系方式:"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="签卡类型:"
+                link="select"
+                static
+                v-model:param="queryForm.shipId"
+                labelKey="label"
+                valueKey="value"
+                :options="[
+                    {label: '类型一', value: '1'},
+                    {label: '类型二', value: '2'},
+                    {label: '类型三', value: '3'},
+                ]"/>
+            <CusFormColumn
+                label="签卡状态:"
+                link="select"
+                static
+                v-model:param="queryForm.shipId"
+                labelKey="label"
+                valueKey="value"
+                :options="[
+                    {label: '类型一', value: '1'},
+                    {label: '类型二', value: '2'},
+                    {label: '类型三', value: '3'},
+                ]"/>
+            <CusFormColumn
+                label="签卡时间:"
+                link="datetime"
+                type="datetimerange"
+                v-model:param="queryForm.shipId"/>
+            <CusSearchButtons
+                @handleReset="handleReset"
+                @handleSearch="onSearch"
+            />
+          </CusForm>
+        </template>
+        <template #buttons>
+          <div class="__cus-button_submit __hover">
+            <SvgIcon name="export" size="16"/>导出
+          </div>
+        </template>
+        <template #table>
+          <CusTable
+              v-loading="loading"
+              ref="ref_cusTable"
+              :tableData="queryResult.tableData"
+              :tableHead="tableHead"
+              :total="queryResult.total"
+              :page="queryPage.pageNum"
+              :pageSize="queryPage.pageSize"
+              @handlePage="handlePage"
+              @handleSort="handleSort"
+          >
+          </CusTable>
+        </template>
+      </CusContent>
+    </div>
+  </div>
 </template>
 
 <script lang="ts">
@@ -25,9 +104,119 @@ export default defineComponent({
     const router = useRouter();
     const route = useRoute();
     const that = (getCurrentInstance() as ComponentInternalInstance).appContext.config.globalProperties
-    const state = reactive({})
+    const state = reactive({
+      //  加载中
+      loading: false,
+      //  查询分页参数
+      queryPage: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      //  查询结果
+      queryResult: {
+        total: 0,
+        tableData: []
+      },
+      //  查询表单参数
+      queryForm: <any>{},
+      //  查询表单参数备份
+      back_queryForm: {},
+      //  查询表格排序
+      querySort: {},
+      //  表格表头
+      tableHead: [
+        {value: "p1", label: "席位编号", show: true},
+        {value: "p1", label: "单位", show: true},
+        {value: "p1", label: "值班员", show: true},
+        {value: "p1", label: "联系方式", show: true},
+        {value: "p1", label: "签卡类型", show: true},
+        {value: "p1", label: "签卡状态", show: true},
+        {value: "p1", label: "签卡时间", show: true},
+      ],
+    });
+    const ref_cusTable = ref()
+    //  获取字典
+    const initDictionary = () => {
+    }
+    //  查询分页参数改变处理方法
+    const handlePage = ({page, pageSize}: any) => {
+      state.queryPage.pageNum = page
+      state.queryPage.pageSize = pageSize
+      handleSearch(page, pageSize)
+    }
+    //  查询排序参数改变处理方法
+    const handleSort = ({key, value}: any) => {
+      state.querySort = key ? {key: value} : {}
+      handleSearch()
+    }
+    //  重置查询表单方法
+    const handleReset = () => {
+      state.queryForm = {}
+      state.back_queryForm = state.queryForm
+      handleSearch()
+    }
+    //  查询方法
+    const handleSearch = (page = 1, pageSize = 10) => {
+      //  添加分页参数
+      const queryParams: any = {
+        pageNum: page,
+        pageSize: pageSize,
+        sort: {},
+        text: ''
+      }
+      //  添加排序参数
+      for (const [k, v] of Object.entries(state.querySort)) {
+        that.$util.isValue(v) ? (queryParams.sort[k] = v) : null;
+      }
+      //  添加表单参数
+      for (const [k, v] of Object.entries(state.back_queryForm)) {
+        that.$util.isValue(v) ? (queryParams[k] = v) : null;
+      }
+      //  添加复合查询参数
+      state.loading = true
+
+      // mock
+      const arr = []
+      for (let i = 0; i < 77; i++) {
+        arr.push({p1: '阿三顶顶顶顶顶顶顶顶顶顶顶顶顶'})
+      }
+      state.queryResult.tableData = arr
+      state.queryResult.total = arr.length
+      state.loading = false
+      // that.$api.patrolBoatList(that.$util.formatGetParam(queryParams)).then((res: { code: number; rows: never[]; total: number; }) => {
+      //   if (res.code === 200) {
+      //     state.queryResult.tableData = res.rows
+      //     state.queryResult.total = res.total
+      //   }
+      //   setTimeout(() => {
+      //     state.loading = false
+      //   }, 1000)
+      // }).catch(() => {
+      //   setTimeout(() => {
+      //     state.loading = false
+      //   }, 1000)
+      // })
+    }
+    //  点击查询按钮后
+    const onSearch = () => {
+      ref_cusTable.value.resetFilter()
+      state.back_queryForm = state.queryForm
+      state.queryPage.pageNum = 1
+      handleSearch()
+    }
+    onMounted(() => {
+      state.back_queryForm = JSON.parse(JSON.stringify(state.queryForm))
+      initDictionary()
+      handleSearch()
+    })
     return {
-      ...toRefs(state)
+      ref_cusTable,
+      ...toRefs(state),
+      handleSearch,
+      handlePage,
+      handleSort,
+      handleReset,
+      onSearch,
     }
   },
 })

+ 3 - 3
src/views/system/weekly-manage/detail.vue

@@ -1,6 +1,6 @@
 <template>
   <CusDialog
-      title="日志"
+      title="周报"
       :show="show"
       @close="$emit('update:show', false)"
       @submit="onSubmit"
@@ -12,7 +12,7 @@
         <CusFormColumn
             :span="24"
             required
-            label="日志标题:"
+            label="周报标题:"
             v-model:param="cusDetail.p1"/>
         <CusFormColumn
             :span="24"
@@ -29,7 +29,7 @@
         <CusFormColumn
             :span="24"
             required
-            label="值班记录:"
+            label="周报总结:"
             type="textarea"
             :rows="8"
             v-model:param="cusDetail.p2"/>

+ 11 - 6
src/views/system/weekly-manage/index.vue

@@ -13,12 +13,18 @@
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
                 label="单位:"
+                link="dept"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
-                label="值班员:"
+                label="提交人员:"
                 v-model:param="queryForm.shipId"/>
             <CusFormColumn
-                label="签卡时间:"
+                label="周报时间:"
+                link="datetime"
+                type="datetimerange"
+                v-model:param="queryForm.shipId"/>
+            <CusFormColumn
+                label="提交时间:"
                 link="datetime"
                 type="datetimerange"
                 v-model:param="queryForm.shipId"/>
@@ -117,12 +123,11 @@ export default defineComponent({
       querySort: {},
       //  表格表头
       tableHead: [
-        {value: "p1", label: "标题", show: true},
-        {value: "p1", label: "日志标题", show: true},
-        {value: "p1", label: "单位", show: true},
+        {value: "p1", label: "周报标题", show: true},
         {value: "p1", label: "席位编号", show: true},
+        {value: "p1", label: "单位", show: true},
         {value: "p1", label: "提交人员", show: true},
-        {value: "p1", label: "值班时间", show: true},
+        {value: "p1", label: "周报时间", show: true},
         {value: "p1", label: "提交时间", show: true},
         {value: "do", label: "操作", show: true, width: 260},
       ],