|
|
@@ -2,50 +2,76 @@
|
|
|
<div class="info">
|
|
|
<header>
|
|
|
<h5>工作经历</h5>
|
|
|
- </header>
|
|
|
- <div v-if="experience.length" class="show">
|
|
|
- <div v-for="item in experience" :key="item.company">
|
|
|
- <h4>
|
|
|
- <span>{{`${item.start} - ${item.end} ${item.company} ${item.position}`}}</span>
|
|
|
- <el-button type="text">编辑</el-button>
|
|
|
- </h4>
|
|
|
- <p>{{item.des}}</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="editing" class="edit">
|
|
|
- <el-form ref="form" :rules="rules" :model="form" label-width="147px">
|
|
|
- <div class="header">
|
|
|
- <el-date-picker v-model="form.start" type="date" placeholder="开始时间"></el-date-picker>
|
|
|
- <span class="to">至</span>
|
|
|
- <el-date-picker v-model="form.end" type="date" placeholder="结束时间"></el-date-picker>
|
|
|
- <el-input :style="{width: '202px'}" v-model="form.company" placeholder="请输入公司名称"></el-input>
|
|
|
- <el-select v-model="form.position" placeholder="选择职位">
|
|
|
- <el-option label="区域一" value="shanghai"></el-option>
|
|
|
- <el-option label="区域二" value="beijing"></el-option>
|
|
|
- </el-select>
|
|
|
- <span v-if="editing" class="opts">
|
|
|
- <el-button type="danger" @click="handleDelete">删除</el-button>
|
|
|
- <el-button type="info" @click="editing = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="onSubmit">确认</el-button>
|
|
|
+ <span>
|
|
|
+ <el-button v-if="experience.length > 0" @click="rankDialog = true" type="text">设置优先展示</el-button>
|
|
|
+ <el-dialog title="设置优先展示" :visible.sync="rankDialog" :before-close="handleRankClose">
|
|
|
+ <el-form ref="form" :model="rankForm" label-width="147px">
|
|
|
+ <el-form-item label="优先展示" prop="name">
|
|
|
+ <el-select v-model="rankForm.first" placeholder="选择优先展示">
|
|
|
+ <el-option
|
|
|
+ v-for="(item, idx) in experience"
|
|
|
+ :label="item.company"
|
|
|
+ :value="idx"
|
|
|
+ :key="item.company"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="rankDialog = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="handleRank">确 定</el-button>
|
|
|
</span>
|
|
|
- <div v-else class="opts">
|
|
|
- <el-button type="primary" @click="editing = true">编辑</el-button>
|
|
|
- </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-button @click="handleAdd" type="text" icon="el-icon-plus"></el-button>
|
|
|
+ </span>
|
|
|
+ </header>
|
|
|
+ <div v-if="experience.length > 0">
|
|
|
+ <template v-for="(item, idx) in experience">
|
|
|
+ <div v-if="editingItem.indexOf(idx) < 0" :key="item.company" class="show">
|
|
|
+ <h4>
|
|
|
+ <span>{{`${item.start} - ${item.end} ${item.company} ${item.position}`}}</span>
|
|
|
+ <el-button @click="editItem(idx)" type="text">编辑</el-button>
|
|
|
+ </h4>
|
|
|
+ <p>{{item.des}}</p>
|
|
|
</div>
|
|
|
- <div class="content">
|
|
|
- <el-input
|
|
|
- type="textarea"
|
|
|
- :rows="7"
|
|
|
- placeholder="请从主要工作内容、成就等方面,描述你的工作经历,字数不少于60字符"
|
|
|
- v-model="form.des"
|
|
|
- ></el-input>
|
|
|
- <uploader :imageUrl="form.imageUrl" title="工作证明" @change="handleImageUrl"></uploader>
|
|
|
+ <div v-else :key="item.company" class="edit">
|
|
|
+ <el-form ref="form" :rules="rules" :model="experience[idx]" label-width="147px">
|
|
|
+ <div class="header">
|
|
|
+ <el-date-picker v-model="experience[idx].start" type="date" placeholder="开始时间"></el-date-picker>
|
|
|
+ <span class="to">至</span>
|
|
|
+ <el-date-picker v-model="experience[idx].end" type="date" placeholder="结束时间"></el-date-picker>
|
|
|
+ <el-input
|
|
|
+ :style="{width: '202px'}"
|
|
|
+ v-model="experience[idx].company"
|
|
|
+ placeholder="请输入公司名称"
|
|
|
+ ></el-input>
|
|
|
+ <el-select v-model="experience[idx].position" placeholder="选择职位">
|
|
|
+ <el-option label="区域一" value="shanghai"></el-option>
|
|
|
+ <el-option label="区域二" value="beijing"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <span class="opts">
|
|
|
+ <el-button type="danger" @click="handleDelete(idx)">删除</el-button>
|
|
|
+ <el-button type="info" @click="handleCancel(idx)">取消</el-button>
|
|
|
+ <el-button type="primary" @click="onSubmit(idx)">确认</el-button>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="7"
|
|
|
+ placeholder="请从主要工作内容、成就等方面,描述你的工作经历,字数不少于60字符"
|
|
|
+ v-model="experience[idx].des"
|
|
|
+ ></el-input>
|
|
|
+ <uploader :imageUrl="experience[idx].imageUrl" title="工作证明" @change="handleImageUrl"></uploader>
|
|
|
+ </div>
|
|
|
+ <footer>
|
|
|
+ <p>注:有效的工作证明包括:工牌/入职通知邮件/在职证明/公司邮箱截图/公司获奖证书/钉钉截图/离职证明/社保公积金证明等(其中之一即可,截图中需同时出现公司信息和个人信息,才能作为有效工作证明,并与目前公司相一致)</p>
|
|
|
+ </footer>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- <footer>
|
|
|
- <p>注:有效的工作证明包括:工牌/入职通知邮件/在职证明/公司邮箱截图/公司获奖证书/钉钉截图/离职证明/社保公积金证明等(其中之一即可,截图中需同时出现公司信息和个人信息,才能作为有效工作证明,并与目前公司相一致)</p>
|
|
|
- </footer>
|
|
|
- </el-form>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
+ <div v-else class="empty">点击右上角“添加”按钮添加工作经历</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -54,11 +80,12 @@ import uploader from "@/components/uploader";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- editing: true,
|
|
|
+ // editing: true,
|
|
|
+ editingItem: [],
|
|
|
rules: {
|
|
|
name: ""
|
|
|
},
|
|
|
- form: {
|
|
|
+ init: {
|
|
|
imageUrl: "",
|
|
|
start: "",
|
|
|
end: "",
|
|
|
@@ -67,32 +94,54 @@ export default {
|
|
|
des: ""
|
|
|
},
|
|
|
experience: [
|
|
|
- {
|
|
|
- imageUrl: "",
|
|
|
- start: "2019-01-02",
|
|
|
- end: "2019-01-02",
|
|
|
- company: "程序员客栈",
|
|
|
- position: "高级产品经理",
|
|
|
- des:
|
|
|
- "主要负责程序员客栈“雇佣直通车、1980服务、云端项目、雇佣项目“项目前后端开发,参与整个项目的设计、需求讨论、代码开发、联调测试及系统维护迭代。 【主要工作成就】:解决“雇佣直通车”项目,系统智能自动匹配算法问题。"
|
|
|
- }
|
|
|
+ // {
|
|
|
+ // imageUrl: "",
|
|
|
+ // start: "2019-01-02",
|
|
|
+ // end: "2019-01-02",
|
|
|
+ // company: "程序员客栈",
|
|
|
+ // position: "高级产品经理",
|
|
|
+ // des:
|
|
|
+ // "主要负责程序员客栈“雇佣直通车、1980服务、云端项目、雇佣项目“项目前后端开发,参与整个项目的设计、需求讨论、代码开发、联调测试及系统维护迭代。 【主要工作成就】:解决“雇佣直通车”项目,系统智能自动匹配算法问题。"
|
|
|
+ // }
|
|
|
],
|
|
|
- current: null
|
|
|
+ current: null,
|
|
|
+ rankDialog: false,
|
|
|
+ rankForm: {
|
|
|
+ first: ""
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
|
uploader
|
|
|
},
|
|
|
methods: {
|
|
|
- onSubmit() {
|
|
|
+ onSubmit(idx) {
|
|
|
console.log("submit!", this.form);
|
|
|
this.experience.push(this.form);
|
|
|
},
|
|
|
+ handleRankClose() {
|
|
|
+ this.rankForm = {
|
|
|
+ first: ""
|
|
|
+ };
|
|
|
+ },
|
|
|
+ handleRank() {
|
|
|
+ this.rankDialog = false;
|
|
|
+ },
|
|
|
+ handleAdd() {
|
|
|
+ this.experience.push(this.init);
|
|
|
+ this.editingItem.push(this.experience.length - 1);
|
|
|
+ },
|
|
|
handleImageUrl(url) {
|
|
|
this.form.imageUrl = url;
|
|
|
},
|
|
|
- handleDelete() {
|
|
|
+ handleDelete(idx) {
|
|
|
this.experience.splice(this.experience.indexOf(this.current), 1);
|
|
|
+ },
|
|
|
+ handleCancel(idx) {
|
|
|
+ this.editingItem.splice(this.editingItem.indexOf(idx), 1);
|
|
|
+ },
|
|
|
+ editItem(idx) {
|
|
|
+ this.editingItem.push(idx);
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
@@ -100,6 +149,9 @@ export default {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.info {
|
|
|
+ header .el-icon-plus {
|
|
|
+ font-size: 18px;
|
|
|
+ }
|
|
|
.edit {
|
|
|
padding: 20px;
|
|
|
> form {
|
|
|
@@ -163,6 +215,15 @@ export default {
|
|
|
line-height: 24px;
|
|
|
}
|
|
|
}
|
|
|
+ .empty {
|
|
|
+ margin: 112px auto 104px;
|
|
|
+ font-size: 27px;
|
|
|
+ font-family: PingFangSC-Regular;
|
|
|
+ font-weight: 400;
|
|
|
+ text-align: center;
|
|
|
+ color: rgba(205, 205, 205, 1);
|
|
|
+ line-height: 38px;
|
|
|
+ }
|
|
|
footer p {
|
|
|
margin-top: 15px;
|
|
|
width: 766px;
|