Decorative image frame

vue自定义组件v-model绑定数据的实现方法

代码

父组件调用

1
<list v-model="data" :multiple="true"></list>

子组件list.vue代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<template>
<el-select v-model="val" v-bind="$attrs" placeholder="请选择">
<el-option
v-for="item in list"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</template>

<script>
import { getColumnList } from '@/api/column.js'

export default {
inheritAttrs: false,
model: {
prop: 'value',
event: 'change'
},
props: {
value: null
},
data () {
return {
list: [{id:'1',name:'张三'},{id:'2',name:'李四'}]
}
},
computed: {
val: {
get () {
return this.value
},
set (newval) {
this.$emit('change', newval)
}
}
}
}
</script>

阅读全文...

url添加参数

微信开发过程中经常用到获取openid后地址跳转,但是要保持原地址的所有参数,再添加上openid参数。函数很简单,也很实用,记录一下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
function urlAddParam($url, $params)
{
$urlParse = parse_url($url);

// url协议
$scheme = empty($urlParse['scheme']) ? '' : $urlParse['scheme'] . '://';
// host
$host = empty($urlParse['host']) ? '' : $urlParse['host'];
// 端口
$port = empty($urlParse['port']) ? '' : ':' . $urlParse['port'];
// 执行文件
$path = empty($urlParse['path']) ? '' : $urlParse['path'];
// 请求参数
$queryStr = $urlParse['query'] ?? '';
parse_str($queryStr, $queryArr);
$queryArr = array_merge($queryArr, $params);
$query = http_build_query($queryArr);
$query = empty($query) ? '' : '?' . $query;
// 锚点链接
$fragment = empty($urlParse['fragment']) ? '' : '#' . $urlParse['fragment'];

return $scheme . $host . $port . $path . $query . $fragment;
}

echo urlAddParam('https://gitee.com/shooke/codes/new', ['openid'=>'sdfsdfoihnwoixchow==']);

shadowsocks-deepin pac模式失效问题解决方案

今天发现无法访问google了,登上服务器看了下没有链接。查看了下本机shadowsocks-deepin是正常启动的。
再看代理模式是pac。改成全局模式居然可以正常访问google了。问题原因就发生在pac上了。
试着访问了一下http://file.lolimay.cn/autoproxy.pac果然无法访问了。
在网上找了一个新的pac配置修改上,真的可以了。目前有效地址https://prudent-travels.000webhostapp.com/pac.php?a=SOCKS5&b=127.0.0.1:1080

我用的deepin系统其他系统的修改方式可能有差别。具体操作如下:

阅读全文...

vscode打造php开发环境

文档注释

借助于 PHP DocBlocker 插件,可以快速地在类名、变量名、方法/函数名 上方添加注释。

自动补全

借助于 PHP Intelephense 插件,可以实现代码智能提示。
安装后选择 file->preferences->settings 选择右上角{}进入配置模式,添加"php.executablePath": "/usr/bin/php",配置上php的路径

代码格式化

借助于 php-cs-fixer 插件,可以方便地按照某一规则格式化代码,让你时刻保持代码可读性和风格统一。

阅读全文...

pipenv与pyenv、pyenv-virtualenv的关系和使用

为什么要有版本管理

我们举个例子:

  1. 项目一要求用python 2.x
  2. 项目二要去python 3.x

如果服务器上要运行这两个项目,就需要安装两个版本。如果项目更多,需要的版本也越多,我们就需要有版本管理的概念。

为什么要有虚拟版本

上面我们看到,版本管理解决了,不同项目对python版本的需求。如果我们服务器上有增加了一个项目,情况如下,如果解决呢

  1. 项目一要求用python 2.x
  2. 项目二要去python 3.x,要求导入的requests包是1.x
  3. 项目三要去python 3.x,要去导入的requests包是2.x

我们看到项目二和项目三要去的是同样的版本,但是依赖的包是不同版本的,我们无法在一个版本上,同一个包安装不同的版本。这样容易造成混乱。因此就需要虚拟环境了。虚拟环境就是在所需的版本上,创建一个副本,在副本里进行依赖包的管理,这样不同的项目用自己的副本,就不会相互干扰。

阅读全文...

GIT批量删除远程标签

查看远程所有标签

1
2
3
4
5
$ git ls-remote --tags
From git@github0123:jeremy0123/fetch.git
30f4e5cdfef2539b5e156a607f365fb457f309a4 refs/tags/v0.1
0efbfd03ed4b09647ef8a32db9c0a075f7d7dbeb refs/tags/v0.2
6944954ffa18df994365e53e96d3826a3953890b refs/tags/v0.2^{}

注意:refs/tags/v0.2^{}表示v0.2是含附注的标签。
另外,参数–tags可以简化为-t;–heads会获取远程仓库的分支信息。如果没有任何参数,将获取所有的分支和标签信息。

阅读全文...