From 9431e0245997487edfb44cb5321f50c30430ca9e Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 20 三月 2024 10:16:30 +0800
Subject: [PATCH] 1

---
 src/components/makepager/pager/PagerView.vue                                             |    4 
 src/views/productManage/silkRegisterForm/addPage.vue                                     |  543 +++++++++++++--------
 src/api/productManage/silkRegisterForm.js                                                |   14 
 vue.config.js                                                                            |    2 
 src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue           |  177 +++++++
 src/views/employeeSalary/attendanceStatistics/index.vue                                  |  268 ++++++++++
 src/views/employeeSalary/attendanceManage/index.vue                                      |  251 +++++++++
 src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue |  228 +++++++++
 8 files changed, 1,249 insertions(+), 238 deletions(-)

diff --git a/src/api/productManage/silkRegisterForm.js b/src/api/productManage/silkRegisterForm.js
index 7fc71f4..5b05747 100644
--- a/src/api/productManage/silkRegisterForm.js
+++ b/src/api/productManage/silkRegisterForm.js
@@ -8,10 +8,10 @@
     data
   })
 }
-// 娣诲姞璺熻繘璁板綍
-export function getAddFollowRecord(data) {
+//淇濆瓨绾ゅ害鐧昏
+export function saveRegister(data) {
   return request({
-    url: "/api/followRecord/add",
+    url: "/api-jl/v1/fineness/register",
     method: "post",
     data
   })
@@ -24,6 +24,14 @@
     data
   })
 }
+// 绾ゅ害鐧昏 select鏁版嵁
+export function getDictList(data) {
+  return request({
+    url: "/api-jl/v1/system/dict?dictType="+data.dictType,
+    method: "get",
+    data
+  })
+}
 // 鏇存柊璺熻繘璁板綍
 export function getUpdateFollowRecord(data) {
   return request({
diff --git a/src/components/makepager/pager/PagerView.vue b/src/components/makepager/pager/PagerView.vue
index ac30707..d9a8c8f 100644
--- a/src/components/makepager/pager/PagerView.vue
+++ b/src/components/makepager/pager/PagerView.vue
@@ -29,7 +29,7 @@
   props: {
     pageSizes: {
       type: Array,
-      default: () => [5, 10, 20, 30, 40]
+      default: () =>[15, 30],
     },
     layout: {
       type: String,
@@ -40,7 +40,7 @@
       default: () => {
         return {
           currPage: 1,
-          pageSize: 10,
+          pageSize: 15,
           totalCount: 0
         }
       }
diff --git a/src/views/employeeSalary/attendanceManage/index.vue b/src/views/employeeSalary/attendanceManage/index.vue
index 18ed369..1b5873a 100644
--- a/src/views/employeeSalary/attendanceManage/index.vue
+++ b/src/views/employeeSalary/attendanceManage/index.vue
@@ -1,21 +1,252 @@
 <template>
-  <div class="container"></div>
+  <div class="silkRegister-form">
+    <div class="filter">
+      <div class="filter-card">
+        <CommonSearch
+          :show-add="false"
+          :show-download="false"
+          :amount-view="false"
+          :show-action-btn="false"
+          placeholder="璇疯緭鍏ュ叧閿瘝"
+          @searchClick="onFilterSearch"
+        >
+          <template slot="leftButton">
+            <el-button size="small" type="primary" @click="exportClick">瀵煎叆</el-button>
+            <el-button size="small" type="primary" @click="synchClick">鍚屾</el-button>
+          </template>
+        </CommonSearch>
+      </div>
+    </div>
+
+    <div class="body">
+      <div class="body-card">
+        <div class="list-view">
+          <TableCommonView
+            ref="tableListRef"
+            v-loading="loading"
+            :table-list="tableList"
+            @selTableCol="selTableCol"
+          >
+            <template slot="tableButton">
+              <el-table-column label="鎿嶄綔" width="90" fixed="right">
+                <template slot-scope="scope">
+                  <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button>
+                </template>
+              </el-table-column>
+            </template>
+          </TableCommonView>
+        </div>
+        <div class="btn-pager">
+          <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
+import { getFollowRecordList, getDeleteFollowRecord } from "@/api/productManage/silkRegisterForm.js"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+
 export default {
   name: "attendanceManage",
-  props: {},
-  components: {},
-  mixins: [],
-  computed: {},
-  data() {
-    return {}
+  props: {
   },
-  created() {},
-  methods: {}
+  mixins: [pageMixin],
+  components: {
+  },
+  data() {
+    return {
+      tableList: {},
+      loading: false,
+      searchOptions: [],
+      editConfig: {
+        visible: false,
+        title: "鏂板缓",
+        infomation: {}
+      },
+      search_map: {},
+      tableColumn: [
+        { label: "鏃ユ湡", prop: "topic", min: 120, default: true }, 
+        { label: "鍛樺伐缂栧彿", prop: "client_name", min: 190,default: true}, 
+        { label: "鍛樺伐濮撳悕", prop: "contact_name", min: 100, },
+        { label: "涓婄彮鎵撳崱鏃堕棿", prop: "client_status", min: 100 },
+        { label: "涓嬬彮鎵撳崱鏃堕棿", prop: "contact_information_name", min: 100 }, 
+        { label: "鐝", prop: "follow_time", min: 100 },
+        { label: "鐝涓婄彮鏃堕棿", prop: "next_follow_time", min: 110 },
+        { label: "鐝涓嬬彮鏃堕棿", prop: "member_name", min: 110 }, 
+        { label: "娣诲姞鏃堕棿", prop: "next_follow_time", min: 130 },
+        { label: "娣诲姞浜�", prop: "member_name", min: 110 }, 
+      ],
+      showCol: [
+        "鏃ユ湡",
+        "鍛樺伐缂栧彿",
+        "鍛樺伐濮撳悕",
+        "涓婄彮鎵撳崱鏃堕棿",
+        "涓嬬彮鎵撳崱鏃堕棿",
+        "鐝",
+        "鐝涓婄彮鏃堕棿",
+        "鐝涓嬬彮鏃堕棿",
+        "娣诲姞鏃堕棿",
+        "娣诲姞浜�",
+      ]
+    }
+  },
+  created() {
+    this.setTable()
+    this.getData(this.search_map)
+  },
+  computed: {
+  },
+  methods: {
+    setTable() {
+      this.tableList = {
+        selectIndex: true,
+        tableInfomation: [],
+        allcol: [],
+        showcol: this.showCol,
+        tableColumn: this.setColumnVisible(this.showCol)
+      }
+      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+      this.searchOptions = []
+      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
+        const label = this.tableList.tableColumn[i].label
+        const value = this.tableList.tableColumn[i].prop
+        this.searchOptions.push({ value: value, label: label })
+      }
+    },
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
+    },
+    // 璇锋眰鏁版嵁
+    async getData() {
+      this.loading = true
+      await getFollowRecordList({
+        search_map: this.search_map,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      })
+        .then((res) => {
+          console.log(res)
+          if (res.code === 200) {
+            if (res.data.list && res.data.list.length > 0) {
+              const list = res.data.list.map((item) => {
+                return {
+                  ...item,
+                  client_name: item.client.name,
+                  contact_name: item.contact.name,
+                  client_status: item.client_status.name,
+                  phone: item.contact.phone,
+                  member_name: item.member.username,
+                  contact_information_name: item.contact_information.name
+                }
+              })
+              this.tableList.tableInfomation = list || []
+              this.pagerOptions.totalCount = res.data.count
+            } else {
+              this.tableList.tableInfomation = []
+            }
+          } else {
+            this.tableList.tableInfomation = []
+          }
+          this.loading = false
+        })
+        .catch((err) => {
+          console.log(err)
+          this.tableList.tableInfomation = []
+          this.loading = false
+        })
+    },
+    // 鎼滅储
+    onFilterSearch(searchText) {
+      this.search_map.client_name = searchText ?? ""
+      this.pagerOptions.currPage = 1
+      this.getData()
+    },
+    // 鏂板缓
+    exportClick() {
+      
+    },
+     // 鎵撳嵃
+     synchClick(){
+
+    },
+    
+    // 鍒犻櫎
+    delClick(id) {
+      this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          getDeleteFollowRecord({ ids: [id] }).then((response) => {
+            if (response.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛")
+              this.getData()
+            } else {
+              this.$message.warning("鍒犻櫎澶辫触")
+            }
+          })
+        })
+        .catch(() => {})
+    },
+  }
 }
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.silkRegister-form {
+  height: 100%;
+  overflow: hidden;
+  .filter {
+    height: 80px;
+    display: flex;
+    align-items: center;
+    padding: 12px 20px 0 20px;
+    &-card {
+      height: 80px;
+      display: flex;
+      align-items: center;
+      box-sizing: border-box;
+      padding: 10px 20px;
+      flex: 1;
+      border-radius: 12px;
+      background-color: #fff;
+    }
+  }
+  .body {
+    box-sizing: border-box;
+    padding: 10px 20px;
+    border-radius: 12px;
+    height: calc(100% - 92px);
+    .body-card {
+      background-color: #fff;
+      border-radius: 12px;
+      height: 100%;
+      overflow: hidden;
+    }
+    .list-view {
+      height: calc(100% - 60px);
+      overflow: hidden;
+    }
+    .btn-pager {
+      display: flex;
+      margin-top: 10px;
+      .page {
+        margin-left: auto;
+      }
+    }
+  }
+}
+</style>
diff --git a/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue b/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue
new file mode 100644
index 0000000..a080151
--- /dev/null
+++ b/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue
@@ -0,0 +1,228 @@
+<template>
+  <el-dialog :close-on-click-modal="false" :visible.sync="islook" width="40rem" class="add-event-dialog"
+    @close="cancelMethod">
+    <div slot="title" class="tac drawerHeader">{{ editRow.title }}</div>
+    <div class="dialog-content-box">
+      <el-form class="form-box" ref="form" :rules="rules" :model="form" label-width="140px" label-position="right">
+        <el-form-item label="鍛樺伐濮撳悕锛�" prop="id">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鍛樺伐ID锛�" prop="isCore">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="宸ョ锛�" prop="id">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鑰冨嫟鏃ユ湡锛�" prop="isCore">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鐘舵�侊細" prop="id">
+          <template v-if="!isEditOne">
+            <i  class="el-icon-circle-check cursor_pointer font_size_20 color_67c23a"></i>
+           {{ form.name }}
+           <i @click="editOneClick" class="el-icon-edit-outline cursor_pointer font_size_20"></i>
+          </template>
+          <template v-else>
+            <el-select v-model="form.phoneNum" filterable placeholder="璇烽�夋嫨"  class="margin_right_15px" style="width: calc(100% - 80px)">
+            <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+              <el-button type="text" @click="submitEditOneClick('form')">纭畾</el-button>
+          </template>
+        </el-form-item>
+        <el-form-item label="涓婄彮鎵撳崱鏃堕棿锛�" prop="isCore">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="涓嬬彮鎵撳崱鏃堕棿锛�" prop="id">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鐝锛�" prop="isCore">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鐝寮�濮嬫椂闂达細" prop="id">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="鐝缁撴潫鏃堕棿锛�" prop="isCore">
+          {{ form.name }}
+        </el-form-item>
+        <el-form-item label="宸ヤ綔鏃ュ姞鐝椂闀匡細" prop="id">
+          <template v-if="!isEditTwo">
+           {{ form.name }}
+           <i @click="editTwoClick" class="el-icon-edit-outline cursor_pointer font_size_20"></i>
+          </template>
+          <template v-else>
+            <el-input
+                v-model.number="form.produceAheadDay"
+                maxlength="20"
+                style="width: calc(100% - 80px)"
+                clearable
+                placeholder="璇疯緭鍏�"
+                class="margin_right_15px"
+              ></el-input>
+              <el-button type="text" @click="submitEditTwoClick('form')">纭畾</el-button>
+          </template>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div slot="footer" class="dialog-footer tac">
+      <el-button type="cancel" @click="cancelMethod()">鍙栨秷</el-button>
+      <el-button type="primary" @click="submitForm('form')">纭畾</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { getDeleteFollowRecord } from "@/api/employeeManage/employeeInfo.js"
+export default {
+  props: {
+    editRow: {
+      type: Object,
+    }
+  },
+  data() {
+    return {
+      islook: true,
+      form: {
+        id: '',
+        isCore: '',
+        phoneNum: '',
+      },
+      isEditOne:false,
+      isEditTwo:false,
+      DeviceList:[],
+      rules: {
+        id: [
+          {
+            required: true,
+            message: "璇疯緭鍏ヤ汉鍛樺鍚�",
+            trigger: ["blur", "change"],
+          },
+        ],
+        name: [
+          {
+            required: true,
+            message: "璇疯緭鍏ュ憳宸ョ紪鐮�",
+            trigger: ["blur", "change"],
+          },
+        ],
+        produceAheadDay: [
+          {
+            required: false,
+            message: "璇疯緭鍏�",
+            trigger: "blur",
+          },
+          {
+            validator: this.validatorNum,
+            trigger: "blur",
+          },
+        ],
+      },
+    };
+  },
+  created() {
+  },
+  watch: {
+    islook(newVal) {
+      if (newVal) {
+        this.formInfo()
+      }
+    },
+    editRow() {
+      this.formInfo()
+    },
+  },
+  methods: {
+    editOneClick(){
+      this.isEditOne=true
+    },
+    submitEditOneClick(){
+      this.isEditOne=false
+    },
+    editTwoClick(){
+      this.isEditTwo=true
+    },
+    submitEditTwoClick(){
+      this.isEditTwo=false
+    },
+    formInfo() {
+      if (this.islook) {
+        this.form = {
+          isCore: "",
+          id: "",
+        };
+        this.$nextTick(()=>{
+          this.$refs["form"].resetFields();
+          if (this.editRow.id) {
+            this.form = JSON.parse(JSON.stringify(this.editRow));
+          }
+        })
+      }
+    },
+    validatorNum(rule, value, callback) {
+      if (value) {
+        if (value == undefined || value == null) {
+          callback(new Error("璇疯緭鍏ユ湁鏁堟暟瀛�"));
+        } else {
+          var reg = /^\+?[0-9]\d*$/;
+          if (!reg.test(value)) {
+            callback(new Error("璇峰~鍐欎笉灏忎簬0鐨勬暟瀛�"));
+          } else {
+            callback();
+          }
+        }
+      } else {
+        callback();
+      }
+    },
+    cancelMethod() {
+      this.$refs["form"].resetFields();
+      this.islook = false;
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          let form = JSON.parse(JSON.stringify(this.form));
+          if (this.editRow.type == "add") {
+            getDeleteFollowRecord(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "娣诲姞鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod();
+              }
+            });
+          } else {
+            getDeleteFollowRecord(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "缂栬緫鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod();
+              }
+            });
+          }
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.dialog-content-box {
+  height: 28rem;
+
+  .form-box {
+    width: 90%;
+    padding: 0 5%;
+    height: 100%;
+    overflow-y: auto;
+
+  }
+}
+</style>
diff --git a/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue b/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue
new file mode 100644
index 0000000..30d6a40
--- /dev/null
+++ b/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue
@@ -0,0 +1,177 @@
+<template>
+  <el-dialog :close-on-click-modal="false" :visible.sync="islook" width="35rem" class="add-rule-set-dialog"
+    @close="shutdown">
+    <div slot="title" class="tac drawerHeader">瑙勫垯璁剧疆</div>
+    <div class="dialog-content-box">
+      <el-form ref="form" class="form-box" :rules="rules" :model="form" :inline="true" label-width="150px"
+        label-position="right">
+        <el-form-item label="宸ヤ綔鏃ュ姞鐝鍒�:" prop="materialMatch">
+          <el-radio-group v-model="form.materialMatch">
+            <el-radio label="1">
+              涓嶅惎鐢ㄥ伐浣滄棩鍔犵彮
+            </el-radio>
+            <el-radio label="2">
+              瓒呰繃
+              <el-input class="margin_left_10px margin_right_10px" style="width:120px" v-model.number="form.cycle"
+                placeholder="璇疯緭鍏�"></el-input>
+              灏忔椂绠楀姞鐝�
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="浼戞伅鏃ュ姞鐝鍒�:" prop="materialMatch">
+          <el-radio-group v-model="form.materialMatch">
+            <el-radio label="1">
+              涓嶅惎鐢ㄤ紤鎭棩鍔犵彮
+            </el-radio>
+            <el-radio label="2">
+              瓒呰繃
+              <el-input class="margin_left_10px margin_right_10px" style="width:120px" v-model.number="form.cycle"
+                placeholder="璇疯緭鍏�"></el-input>
+              灏忔椂绠楀姞鐝�
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div slot="footer" class="dialog-footer tac">
+      <el-button @click="shutdown">鍙栨秷</el-button>
+      <el-button type="primary" @click="onSubmit(form)">纭畾</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import { getMiniDictList, saveMiniDict } from "@/api/employeeSalary/attendanceStatistics.js" // 鐗堟湰绫诲瀷
+export default {
+  props: {},
+  data() {
+    return {
+      islook: false,
+      form: {
+        warningDays: 3,
+        materialMatch: '1',
+      },
+      rules: {
+        cycle: [
+          {
+            required: true,
+            message: "璇疯緭鍏�",
+            trigger: "blur",
+          },
+          {
+            validator: this.validatorNum,
+            trigger: "blur",
+          },
+        ],
+      },
+      procedureIdsList: [],
+    };
+  },
+  mounted() {
+    // this.getMiniDictList();
+  },
+  watch: {
+    islook(newVal) {
+      if (newVal) {
+        this.getMiniDictList();
+        this.$nextTick(() => {
+          this.$refs["form"].resetFields();
+        });
+      }
+    },
+  },
+  methods: {
+    validatorNum(rule, value, callback) {
+      if (value) {
+        if (value == undefined || value == null) {
+          callback(new Error("璇疯緭鍏ユ湁鏁堟暟瀛�"));
+        } else {
+          var reg = /^\+?[0-9]\d*$/;
+          if (!reg.test(value)) {
+            callback(new Error("璇峰~鍐欎笉灏忎簬0鐨勬暟瀛�"));
+          } else {
+            callback();
+          }
+        }
+      } else {
+        callback();
+      }
+    },
+    async getMiniDictList() {
+      await getMiniDictList({ type: 3 }).then((res) => {
+        if (res.code == 200) {
+          if (res.data) {
+            for (let i in res.data) {
+              if (res.data[i].value == '棰勮澶╂暟') {
+                this.form.warningDays = parseInt(res.data[i].name);
+              } else if (res.data[i].value == '鐗╂枡鍖归厤鏉′欢') {
+                this.form.materialMatch = res.data[i].name ? res.data[i].name : '1';
+              }
+            }
+          }
+        }
+      });
+    },
+    onSubmit() {
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          console.log(this.form);
+          let params = {
+            list: [
+              {
+                name: "" + this.form.warningDays,
+                value: "棰勮澶╂暟"
+              },
+              {
+                name: "" + this.form.materialMatch,
+                value: "鐗╂枡鍖归厤鏉′欢"
+              },
+            ],
+            type: 3,
+          };
+
+          saveMiniDict(params).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                message: "淇濆瓨鎴愬姛锛�",
+                type: "success",
+              });
+              // 淇濆瓨
+              this.shutdown("save");
+            }
+          });
+        }
+      });
+    },
+    shutdown(val) {
+      this.islook = false;
+      this.$emit("closeClick", val);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.add-rule-set-dialog {
+  .form-box {
+    ::v-deep .el-form-item__content {
+      width: calc(100% - 150px);
+    }
+
+    .el-form-item {
+      width: 100%;
+      .el-radio{
+        height:40px;
+        line-height:40px;
+      }
+    }
+  }
+}
+
+
+::v-deep .el-input__inner {
+  font-size: 13px !important;
+  color: rgba(0, 0, 0, 0.9);
+  text-align: left;
+}
+</style>
diff --git a/src/views/employeeSalary/attendanceStatistics/index.vue b/src/views/employeeSalary/attendanceStatistics/index.vue
index 02d4ef8..97b3de6 100644
--- a/src/views/employeeSalary/attendanceStatistics/index.vue
+++ b/src/views/employeeSalary/attendanceStatistics/index.vue
@@ -1,21 +1,269 @@
 <template>
-  <div class="container"></div>
+  <div class="silkRegister-form">
+    <div class="filter">
+      <div class="filter-card">
+        <CommonSearch
+          :show-add="false"
+          :show-download="false"
+          :amount-view="false"
+          :show-action-btn="false"
+          placeholder="璇疯緭鍏ュ叧閿瘝"
+          @searchClick="onFilterSearch"
+        >
+          <template slot="leftButton">
+            <div class="margin_right_20px" style="width:200px;">
+              <el-date-picker v-model="object.date" style="width:100%" type="month" placeholder="閫夋嫨鏃ユ湡"
+                value-format="yyyy-MM">
+              </el-date-picker>
+            </div>
+            <el-button size="small" type="primary" @click="ruleSettingClick">瑙勫垯璁剧疆</el-button>
+          </template>
+        </CommonSearch>
+      </div>
+    </div>
+
+    <div class="body">
+      <div class="body-card">
+        <div class="list-view">
+          <TableCommonView
+            ref="tableListRef"
+            v-loading="loading"
+            :table-list="tableList"
+            @selTableCol="selTableCol"
+          >
+            <template slot="tableButton">
+              <el-table-column label="鎿嶄綔" width="90" fixed="right">
+                <template slot-scope="scope">
+                  <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button>
+                </template>
+              </el-table-column>
+            </template>
+          </TableCommonView>
+        </div>
+        <div class="btn-pager">
+          <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+        </div>
+      </div>
+    </div>
+    <AttendanceStatisticsDetails ref="attendanceStatisticsDetails" :editRow="editRow"  @shutdown="getData" />
+     <!-- 瑙勫垯璁剧疆 -->
+     <RuleSettingDialog ref="RuleSettingDialog" :editRow="editRow"  @closeClick="getData" />
+  </div>
 </template>
 
 <script>
+import { getFollowRecordList, getDeleteFollowRecord } from "@/api/employeeSalary/attendanceStatistics.js"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+import AttendanceStatisticsDetails from  "@/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails"
+import RuleSettingDialog from  "@/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog"
+import Date from "@/api/date";
+const { getCurrentMonth } = Date;
 export default {
   name: "attendanceStatistics",
-  props: {},
-  components: {},
-  mixins: [],
-  computed: {},
-  data() {
-    return {}
+  props: {
   },
-  created() {},
-  methods: {}
+  mixins: [pageMixin],
+  components: {
+    AttendanceStatisticsDetails,
+    RuleSettingDialog
+  },
+  data() {
+    return {
+      tableList: {},
+      loading: false,
+      object:{
+        date:getCurrentMonth()
+      },
+      editRow:{
+
+      },
+      searchOptions: [],
+      editConfig: {
+        visible: false,
+        title: "鏂板缓",
+        infomation: {}
+      },
+      search_map: {},
+      tableColumn: [
+        { label: "濮撳悕", prop: "topic", min: 120, default: true }, 
+        { label: "浜哄憳ID", prop: "client_name", min: 190,default: true}, 
+        { label: "宸ョ", prop: "contact_name", min: 100, },
+        { label: "鏈堜唤", prop: "client_status", min: 100 },
+        { label: "1/鍛ㄤ竴", prop: "client_status", min: 100 },
+        { label: "宸ヤ綔鏃ュ姞鐝椂闀�(灏忔椂)", prop: "contact_information_name", min: 180 }, 
+        { label: "浼戞伅鏃ュ姞鐝椂闀�(灏忔椂)", prop: "follow_time", min: 180 },
+        { label: "搴斿嚭鍕ゅぉ鏁�", prop: "next_follow_time", min: 110 },
+        { label: "瀹為檯鍑哄嫟澶╂暟", prop: "member_name", min: 110 }, 
+      ],
+      showCol: [
+        "濮撳悕",
+        "浜哄憳ID",
+        "宸ョ",
+        "鏈堜唤",
+        "宸ヤ綔鏃ュ姞鐝椂闀�(灏忔椂)",
+        "浼戞伅鏃ュ姞鐝椂闀�(灏忔椂)",
+        "搴斿嚭鍕ゅぉ鏁�",
+        "瀹為檯鍑哄嫟澶╂暟",
+      ]
+    }
+  },
+  created() {
+    this.setTable()
+    this.getData(this.search_map)
+  },
+  computed: {
+  },
+  methods: {
+    setTable() {
+      this.tableList = {
+        selectIndex: true,
+        tableInfomation: [],
+        allcol: [],
+        showcol: this.showCol,
+        tableColumn: this.setColumnVisible(this.showCol)
+      }
+      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+      this.searchOptions = []
+      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
+        const label = this.tableList.tableColumn[i].label
+        const value = this.tableList.tableColumn[i].prop
+        this.searchOptions.push({ value: value, label: label })
+      }
+    },
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
+    },
+    // 璇锋眰鏁版嵁
+    async getData() {
+      this.loading = true
+      await getFollowRecordList({
+        search_map: this.search_map,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      })
+        .then((res) => {
+          console.log(res)
+          if (res.code === 200) {
+            if (res.data.list && res.data.list.length > 0) {
+              const list = res.data.list.map((item) => {
+                return {
+                  ...item,
+                  client_name: item.client.name,
+                  contact_name: item.contact.name,
+                  client_status: item.client_status.name,
+                  phone: item.contact.phone,
+                  member_name: item.member.username,
+                  contact_information_name: item.contact_information.name
+                }
+              })
+              this.tableList.tableInfomation = list || []
+              this.pagerOptions.totalCount = res.data.count
+            } else {
+              this.tableList.tableInfomation = []
+            }
+          } else {
+            this.tableList.tableInfomation = []
+          }
+          this.loading = false
+        })
+        .catch((err) => {
+          console.log(err)
+          this.tableList.tableInfomation = []
+          this.loading = false
+        })
+    },
+    // 鎼滅储
+    onFilterSearch(searchText) {
+      this.search_map.client_name = searchText ?? ""
+      this.pagerOptions.currPage = 1
+      this.getData()
+    },
+    // 璇︽儏
+    detailsClick(row) {
+      let config=JSON.parse(JSON.stringify(row));
+      this.editRow = { ...config, title:'缂栬緫',type:'add' }
+      this.$refs.addWorkKind.islook = true;
+    },
+     // 鎵撳嵃
+     ruleSettingClick(){
+      this.$refs.RuleSettingDialog.islook = true;
+    },
+    
+    // 鍒犻櫎
+    delClick(id) {
+      this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          getDeleteFollowRecord({ ids: [id] }).then((response) => {
+            if (response.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛")
+              this.getData()
+            } else {
+              this.$message.warning("鍒犻櫎澶辫触")
+            }
+          })
+        })
+        .catch(() => {})
+    },
+  }
 }
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.silkRegister-form {
+  height: 100%;
+  overflow: hidden;
+  .filter {
+    height: 80px;
+    display: flex;
+    align-items: center;
+    padding: 12px 20px 0 20px;
+    &-card {
+      height: 80px;
+      display: flex;
+      align-items: center;
+      box-sizing: border-box;
+      padding: 10px 20px;
+      flex: 1;
+      border-radius: 12px;
+      background-color: #fff;
+    }
+  }
+  .body {
+    box-sizing: border-box;
+    padding: 10px 20px;
+    border-radius: 12px;
+    height: calc(100% - 92px);
+    .body-card {
+      background-color: #fff;
+      border-radius: 12px;
+      height: 100%;
+      overflow: hidden;
+    }
+    .list-view {
+      height: calc(100% - 60px);
+      overflow: hidden;
+    }
+    .btn-pager {
+      display: flex;
+      margin-top: 10px;
+      .page {
+        margin-left: auto;
+      }
+    }
+  }
+}
+</style>
diff --git a/src/views/productManage/silkRegisterForm/addPage.vue b/src/views/productManage/silkRegisterForm/addPage.vue
index 10f1fad..62f66a8 100644
--- a/src/views/productManage/silkRegisterForm/addPage.vue
+++ b/src/views/productManage/silkRegisterForm/addPage.vue
@@ -6,213 +6,230 @@
                 <el-tab-pane label="绾ゅ害妫�楠岃〃" name="second"></el-tab-pane>
             </el-tabs>
         </div>
-
-        <div class="filter">
-            <div class="filter-card">
-                <CommonSearch :show-add="false" :show-download="false" :amount-view="false" :show-action-btn="false"
-                    placeholder="璇疯緭鍏ュ叧閿瘝" @searchClick="onFilterSearch">
-                    <template slot="leftButton">
-                        <el-button size="small" type="primary" @click="cancelClick">鏀惧純</el-button>
-                        <el-button size="small" type="primary" @click="saveClick">淇濆瓨</el-button>
-                    </template>
-                </CommonSearch>
+        <template v-if="activeName == 'first'">
+            <div class="filter">
+                <div class="filter-card">
+                    <CommonSearch :show-add="false" :show-download="false" :amount-view="false" :show-action-btn="false"
+                        placeholder="璇疯緭鍏ュ叧閿瘝" @searchClick="onFilterSearch">
+                        <template slot="leftButton">
+                            <el-button size="small" type="primary" @click="cancelClickOne">鏀惧純</el-button>
+                            <el-button size="small" type="primary" @click="saveClickOne('form')">淇濆瓨</el-button>
+                        </template>
+                    </CommonSearch>
+                </div>
             </div>
-        </div>
 
-        <div class="body" v-if="activeName == 'first'">
-            <div class="body-l">
-                <el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="left" label-width="70px">
-                    <el-form-item label="缂栧彿" prop="clientName" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="钀戒笣鏃堕棿" prop="signTime" class="form-item">
-                        <el-date-picker v-model="form.signTime" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡"
-                            style="width:100%">
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item label="搴勫彛" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="杞﹂棿" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="瑙勬牸" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="缁勫埆" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨" style="width: 100%">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="鍥炴暟" prop="amount" class="form-item">
-                        <el-row>
-                            <el-col :span="11">
-                                <el-input v-model.number="form.amount" placeholder="璇疯緭鍏�" show-word-limit
-                                    style="width: 100%"></el-input>
-                            </el-col>
-                            <el-col :span="2" style="margin:0 auto;text-align:center;">-</el-col>
-                            <el-col :span="11">
-                                <el-input v-model.number="form.amount" placeholder="璇疯緭鍏�" show-word-limit
-                                    style="width: 100%"></el-input>
-                            </el-col>
-                        </el-row>
-                    </el-form-item>
-                    <el-form-item label="杞﹀彿" prop="clientName" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
+            <div class="body">
+                <div class="body-l">
+                    <el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="left"
+                        label-width="80px">
+                        <el-form-item label="缂栧彿" prop="number" class="form-item">
+                            <el-input v-model="form.number" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="钀戒笣鏃堕棿" prop="finishDate" class="form-item">
+                            <el-date-picker v-model="form.finishDate" value-format="yyyy-MM-dd" type="date"
+                                placeholder="閫夋嫨鏃ユ湡" class="select-width">
+                            </el-date-picker>
+                        </el-form-item>
+                        <el-form-item label="搴勫彛" prop="market" class="form-item">
+                            <el-select v-model="form.market" placeholder="璇烽�夋嫨" class="select-width">
+                                <el-option v-for="item in marketList" :key="item.ID" :label="item.name"
+                                    :value="item.name">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="杞﹂棿" prop="name" class="form-item">
+                            <el-select v-model="form.name" placeholder="璇烽�夋嫨" class="select-width">
+                                <el-option v-for="item in nameList" :key="item.ID" :label="item.name"
+                                    :value="item.name">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="瑙勬牸" prop="spec" class="form-item">
+                            <el-input v-model="form.spec" placeholder="璇疯緭鍏�">
+                            </el-input>
+                            <!-- <el-select v-model="form.spec" placeholder="璇烽�夋嫨" class="select-width">
+                                <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select> -->
+                        </el-form-item>
+                        <el-form-item label="缁勫埆" prop="workshopGroup" class="form-item">
+                            <el-select v-model="form.workshopGroup" placeholder="璇烽�夋嫨" class="select-width">
+                                <el-option v-for="item in workshopGroupList" :key="item.ID" :label="item.name"
+                                    :value="item.ID">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="鍥炴暟" prop='circle' class="form-item">
+                            <el-row>
+                                <el-col :span="11">
+                                    <el-form-item label="" @input="inputStart" label-width="0" prop="startCircle" class="select-width">
+                                        <el-input  v-model.number="form.startCircle" placeholder="璇疯緭鍏�" show-word-limit
+                                        class="select-width"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="2" style="margin:0 auto;text-align:center;">-</el-col>
+                                <el-col :span="11">
+                                    <el-form-item label="" label-width="0" prop="endCircle" class="select-width">
+
+                                        <el-input v-model.number="form.endCircle" @input="inputStart" placeholder="璇疯緭鍏�" show-word-limit
+                                            class="select-width"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                            </el-row>
+                        </el-form-item>
+                        <el-form-item label="杞﹀彿" prop="position" class="form-item">
+                            <el-input v-model="form.position" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                    </el-form>
+                    <div class="list-view">
+                        <TableCommonView ref="tableListRef" :colOpenShow="false" v-loading="loading" :table-list="tableList"
+                            @selTableCol="selTableCol">
+                        </TableCommonView>
+                    </div>
+                </div>
+                <div class="body-r">
+                    绾ゅ害锛�
+                    <p>{{ form.sumFineness }}</p>
+                </div>
+            </div>
+        </template>
+        <template v-if="activeName == 'second'">
+            <!-- <div class="body-two body" v-if="activeName == 'second'">
+                <div class="body-two-t">绾ゅ害妫�楠岃〃</div>
+                <el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="right" label-width="60px">
+                    <div class="form-box-t">
+                        <el-form-item label="缂栧彿" prop="clientName" class="form-item">
+                            1234546677
+                        </el-form-item>
+                        <el-form-item label="杞﹂棿" prop="deliverType" class="form-item">
+                            <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨">
+                                <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="缁勫埆" prop="deliverType" class="form-item">
+                            <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨" style="width: 100%">
+                                <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="鍥炴暟" prop="amount" class="form-item">
+                            <el-input v-model.number="form.amount" placeholder="璇疯緭鍏�" show-word-limit
+                                style="width: 100%"></el-input>
+                        </el-form-item>
+                        <el-form-item label="瑙勬牸" prop="clientName" class="form-item">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="鏃ユ湡" prop="signTime" class="form-item">
+                            <el-date-picker v-model="form.signTime" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡"
+                                style="width:100%">
+                            </el-date-picker>
+                        </el-form-item>
+                    </div>
+                    <div class="list-view">
+                        <el-table ref="multipleTable" :data="tableTwoList.tableInfomation" tooltip-effect="dark"
+                            style="width: 100%">
+                            <el-table-column label="杞﹀彿" prop="templateName" width="100">
+                            </el-table-column>
+                            <el-table-column label="涓嬪樊绾ゅ害" prop="name" width="100" align="center">
+                                <template v-for="(item, i) in tableTwoList.lower">
+                                    <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
+                                        :width="item.width" :min-width="item.min" show-overflow-tooltip
+                                        :sortable="item.sortable">
+                                    </el-table-column>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="鐩殑绾ゅ害" prop="name" width="100" align="center">
+                                <template v-for="(item, i) in tableTwoList.objective">
+                                    <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
+                                        :width="item.width" :min-width="item.min" show-overflow-tooltip
+                                        :sortable="item.sortable">
+                                    </el-table-column>
+                                </template>
+                            </el-table-column>
+                            <el-table-column label="涓婂樊绾ゅ害" prop="name" width="100" align="center">
+                                <template v-for="(item, i) in tableTwoList.upper">
+                                    <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
+                                        :width="item.width" :min-width="item.min" show-overflow-tooltip
+                                        :sortable="item.sortable">
+                                    </el-table-column>
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="valueRange" label="鍋忓樊" width="120">
+                            </el-table-column>
+                            <el-table-column prop="unit" label="鎬诲樊" show-overflow-tooltip>
+                            </el-table-column>
+                            <el-table-column prop="valueRange" label="閲庣氦" width="120">
+                            </el-table-column>
+                            <el-table-column prop="unit" label="澶ч噹" show-overflow-tooltip>
+                            </el-table-column>
+                            <el-table-column prop="valueRange" label="鐗归噹" width="120">
+                            </el-table-column>
+                            <el-table-column prop="unit" label="绛夌骇" show-overflow-tooltip>
+                            </el-table-column>
+                            <el-table-column prop="valueRange" label="II搴�" width="120">
+                            </el-table-column>
+                            <el-table-column prop="unit" label="娓呮磥" show-overflow-tooltip>
+                            </el-table-column>
+                            <el-table-column prop="valueRange" label="娲佸噣" width="120">
+                            </el-table-column>
+                            <el-table-column prop="unit" label="澶囨敞" show-overflow-tooltip>
+                            </el-table-column>
+                        </el-table>
+                    </div>
+                    <div class="form-box-b">
+                        <el-form-item label="骞冲潎绾ゅ害" prop="clientName" class="form-item-two" label-width="100px">
+                            1234546677
+                        </el-form-item>
+                        <el-form-item label="鍏噺绾ゅ害" prop="deliverType" class="form-item" label-width="100px">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="鍋忓樊" prop="clientName" class="form-item-two">
+                            0.98
+                        </el-form-item>
+                        <el-form-item label="鎬诲樊" prop="clientName" class="form-item-two">
+                            0.98
+                        </el-form-item>
+                        <el-form-item label="杞︾粍绛夌骇" prop="deliverType" class="form-item-two" label-width="100px">
+                            4A
+                        </el-form-item>
+                        <el-form-item label="II搴�" prop="amount" class="form-item">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="娓呮磥" prop="clientName" class="form-item">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="娲佸噣" prop="signTime" class="form-item">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="搴勫彛宸ヨ壓鍗曠紪鍙�" prop="signTime" class="form-item" label-width="110px">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                        <el-form-item label="妫�楠屽憳" prop="signTime" class="form-item">
+                            <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
+                            </el-input>
+                        </el-form-item>
+                    </div>
                 </el-form>
-                <div class="list-view">
-                    <TableCommonView ref="tableListRef" :colOpenShow="false" v-loading="loading" :table-list="tableList"
-                        @selTableCol="selTableCol">
-                    </TableCommonView>
-                </div>
-            </div>
-            <div class="body-r">
-                绾ゅ害锛�
-                <p>19.00</p>
-            </div>
-        </div>
-        <div class="body-two body" v-if="activeName == 'second'">
-            <div class="body-two-t">绾ゅ害妫�楠岃〃</div>
-            <el-form ref="form" class="form-box" :model="form" :rules="rules" label-position="right" label-width="60px">
-                <div class="form-box-t">
-                    <el-form-item label="缂栧彿" prop="clientName" class="form-item">
-                        1234546677
-                    </el-form-item>
-                    <el-form-item label="杞﹂棿" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="缁勫埆" prop="deliverType" class="form-item">
-                        <el-select v-model="form.deliverType" placeholder="璇烽�夋嫨" style="width: 100%">
-                            <el-option v-for="item in deliveryTypeList" :key="item.id" :label="item.name" :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="鍥炴暟" prop="amount" class="form-item">
-                        <el-input v-model.number="form.amount" placeholder="璇疯緭鍏�" show-word-limit
-                            style="width: 100%"></el-input>
-                    </el-form-item>
-                    <el-form-item label="瑙勬牸" prop="clientName" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="鏃ユ湡" prop="signTime" class="form-item">
-                        <el-date-picker v-model="form.signTime" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡"
-                            style="width:100%">
-                        </el-date-picker>
-                    </el-form-item>
-                </div>
-                <div class="list-view">
-                    <el-table ref="multipleTable" :data="tableTwoList.tableInfomation" tooltip-effect="dark"
-                        style="width: 100%">
-                        <el-table-column label="杞﹀彿" prop="templateName" width="100">
-                        </el-table-column>
-                        <el-table-column label="涓嬪樊绾ゅ害" prop="name" width="100" align="center">
-                            <template v-for="(item, i) in tableTwoList.lower">
-                                <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
-                                    :width="item.width" :min-width="item.min" show-overflow-tooltip
-                                    :sortable="item.sortable">
-                                </el-table-column>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="鐩殑绾ゅ害" prop="name" width="100" align="center">
-                            <template v-for="(item, i) in tableTwoList.objective">
-                                <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
-                                    :width="item.width" :min-width="item.min" show-overflow-tooltip
-                                    :sortable="item.sortable">
-                                </el-table-column>
-                            </template>
-                        </el-table-column>
-                        <el-table-column label="涓婂樊绾ゅ害" prop="name" width="100" align="center">
-                            <template v-for="(item, i) in tableTwoList.upper">
-                                <el-table-column align="center" :key="i" :prop="item.prop" :label="item.label"
-                                    :width="item.width" :min-width="item.min" show-overflow-tooltip
-                                    :sortable="item.sortable">
-                                </el-table-column>
-                            </template>
-                        </el-table-column>
-                        <el-table-column prop="valueRange" label="鍋忓樊" width="120">
-                        </el-table-column>
-                        <el-table-column prop="unit" label="鎬诲樊" show-overflow-tooltip>
-                        </el-table-column>
-                        <el-table-column prop="valueRange" label="閲庣氦" width="120">
-                        </el-table-column>
-                        <el-table-column prop="unit" label="澶ч噹" show-overflow-tooltip>
-                        </el-table-column>
-                        <el-table-column prop="valueRange" label="鐗归噹" width="120">
-                        </el-table-column>
-                        <el-table-column prop="unit" label="绛夌骇" show-overflow-tooltip>
-                        </el-table-column>
-                        <el-table-column prop="valueRange" label="II搴�" width="120">
-                        </el-table-column>
-                        <el-table-column prop="unit" label="娓呮磥" show-overflow-tooltip>
-                        </el-table-column>
-                        <el-table-column prop="valueRange" label="娲佸噣" width="120">
-                        </el-table-column>
-                        <el-table-column prop="unit" label="澶囨敞" show-overflow-tooltip>
-                        </el-table-column>
-                    </el-table>
-                </div>
-                <div class="form-box-b">
-                    <el-form-item label="骞冲潎绾ゅ害" prop="clientName" class="form-item-two" label-width="100px">
-                        1234546677
-                    </el-form-item>
-                    <el-form-item label="鍏噺绾ゅ害" prop="deliverType" class="form-item" label-width="100px">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="鍋忓樊" prop="clientName" class="form-item-two">
-                        0.98
-                    </el-form-item>
-                    <el-form-item label="鎬诲樊" prop="clientName" class="form-item-two">
-                        0.98
-                    </el-form-item>
-                    <el-form-item label="杞︾粍绛夌骇" prop="deliverType" class="form-item-two"  label-width="100px">
-                        4A
-                    </el-form-item>
-                    <el-form-item label="II搴�" prop="amount" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="娓呮磥" prop="clientName" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="娲佸噣" prop="signTime" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="搴勫彛宸ヨ壓鍗曠紪鍙�" prop="signTime" class="form-item" label-width="110px">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                    <el-form-item label="妫�楠屽憳" prop="signTime" class="form-item">
-                        <el-input v-model="form.clientName" placeholder="璇疯緭鍏�">
-                        </el-input>
-                    </el-form-item>
-                </div>
-            </el-form>
-        </div>
+            </div> -->
+        </template>
     </div>
 </template>
   
 <script>
-import { getFollowRecordList } from "@/api/productManage/silkRegisterForm.js"
+import { getRegisterList,saveRegister,getDictList } from "@/api/productManage/silkRegisterForm.js"
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
 export default {
     name: "silkRegisterAddPage",
@@ -230,17 +247,55 @@
             search_map: {},
             is_public: true,
             tableColumn: [
-                { label: "杞﹀彿", prop: "name", min: 100, default: true }, // 瀹㈡埛鍚嶇О
-                { label: "绾ゅ害鍊�", prop: "member_name", default: true }, // 閿�鍞礋璐d汉
-                { label: "鏁伴噺", prop: "client_level", default: true }, // 閲嶈绾у埆
-                { label: "绾ゅ害鍚堣", prop: "next_visit_time", min: 90, default: true }, // 涓嬫鍥炶鏃ユ湡
+                { label: "杞﹀彿", prop: "position", min: 100, default: true }, // 瀹㈡埛鍚嶇О
+                { label: "绾ゅ害鍊�", prop: "fineness", default: true }, // 閿�鍞礋璐d汉
+                { label: "鏁伴噺", prop: "quantity", default: true }, // 閲嶈绾у埆
+                { label: "绾ゅ害鍚堣", prop: "sum", min: 90, default: true }, // 涓嬫鍥炶鏃ユ湡
             ],
             showCol: ['杞﹀彿', '绾ゅ害鍊�', '鏁伴噺', '绾ゅ害鍚堣'],
+            marketList:[], //搴勫彛
+            nameList:[], //杞﹂棿
+            workshopGroupList:[], //缁勫埆
             deliveryTypeList: [],
-            form: {},
+            form: {
+                number:'',
+                finishDate:'',
+                market:'',
+                name:'', 
+                spec:'',
+                workshopGroup:'',
+                circle:'',
+                startCircle:'',
+                endCircle:'',
+                position:'',
+            },
             rules: {
-                clientName: [
-                    { required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" },
+                number: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
+                ],
+                finishDate: [
+                    { required: true, message: "璇烽�夋嫨", trigger: ["change", 'blur'] },
+                ],
+                name: [
+                    { required: true, message: "璇烽�夋嫨", trigger: ["change", 'blur'] },
+                ],
+                spec: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
+                ],
+                workshopGroup: [
+                    { required: true, message: "璇烽�夋嫨", trigger: ["change", 'blur'] },
+                ],
+                circle: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
+                ],
+                startCircle: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
+                ],
+                endCircle: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
+                ],
+                position: [
+                    { required: true, message: "璇峰~鍐�", trigger: ["change", 'blur'] },
                 ],
             },
             tableTwoList: {
@@ -286,12 +341,42 @@
             this.activeName = query.activeName ? query.activeName : "first";
         }
         this.setTable()
+        this.getSelectDataList()
         this.search_map = {
             is_public: this.is_public
         }
         this.getData()
     },
     methods: {
+        getSelectDataList(){
+            //杞﹂棿
+            getDictList({
+                dictType: 0,
+            }).then((res) => {
+                    if (res.code == 200) {
+                        this.nameList=res.data||[]
+                    }
+                })
+                //缁勫埆
+            getDictList({
+                dictType: 1,
+            }).then((res) => {
+                    if (res.code == 200) {
+                        this.workshopGroupList=res.data||[]
+                    }
+                })
+                //搴勫彛
+                getDictList({
+                dictType: 2,
+            }).then((res) => {
+                    if (res.code == 200) {
+                        this.marketList=res.data||[]
+                    }
+                })
+        },
+        inputStart(){
+            this.form.circle=this.form.startCircle+'-'+this.form.endCircle
+        },  
         setTable() {
             this.tableList = {
                 selectIndex: false,
@@ -324,7 +409,7 @@
         // 璇锋眰鏁版嵁
         async getData() {
             this.loading = true
-            await getFollowRecordList({
+            await getRegisterList({
                 search_map: this.search_map,
                 page: this.pagerOptions.currPage,
                 pageSize: this.pagerOptions.pageSize
@@ -404,6 +489,35 @@
             }
             this.pagerOptions.currPage = 1
             this.getData()
+        },
+        // 绾ゅ害鐧昏琛�
+        // 鏀惧純
+        cancelClickOne() {
+
+        },
+        // 淇濆瓨
+        saveClickOne(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    let form = JSON.parse(JSON.stringify(this.form));
+                    delete form.circle
+                    let params = {
+                        finenessList: this.tableList.tableInfomation,
+                        ...form
+                    }
+                    saveRegister(params).then((res) => {
+                        if (res.code == 200) {
+                            this.$message({
+                                message: "淇濆瓨鎴愬姛锛�",
+                                type: "success",
+                            });
+                        }
+                    });
+                } else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
         },
         // 鏀惧純
         cancelClick() {
@@ -491,6 +605,9 @@
                     &:nth-of-type(3n) {
                         margin-right: 0;
                     }
+                    .select-width{
+                        width:100%;
+                    }
                 }
             }
 
@@ -561,14 +678,16 @@
             max-height: calc(100% - 90px - 10px);
             overflow: hidden;
         }
+
         .form-box-b {
             width: 100%;
             height: 60px;
-            margin-top:10px;
+            margin-top: 10px;
             overflow: hidden;
-            .form-item-two{
-                width:160px;
-                float:left;
+
+            .form-item-two {
+                width: 160px;
+                float: left;
             }
 
             .form-item {
diff --git a/vue.config.js b/vue.config.js
index b48fa64..ffe1a1d 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -16,7 +16,7 @@
       "/api": {
 
         // target: "http://192.168.20.118:8889", // http://192.168.20.119:8002 http://fai365.com:30150/
-        // target: "http://192.168.20.120:8004", 
+        // target: "http://192.168.20.120:8008", 
         target: "http://192.168.20.119:8004", // http://192.168.20.119:8004 http://fai365.com:30150/
 
         ws: true,

--
Gitblit v1.8.0