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